Codeforces Round #570 (Div. 3)

小蒟蒻第一次参加Codeforces的比赛……qaq


首先这题面是英语……看惯了中文题面的我不大习惯呀
特别是我英语还那么差(哭)
不管了题目反正能看懂个大概


A

诶这不就求一个位数和然后根据模数分类讨论吗
然而窝想得好像有些太简单啦qwq
于是就挂了第二个样例
哎推式子干什么反正暴力能跑过是不是
果断暴力
Accepted

#include <cstdio>

int main() {
	int n, tmp;
	int sum = 0;
	scanf("%d", &n);
	for(int i = n; ; i++) {
		int tmp = i;
		sum = 0;
		while(tmp) {
			sum += tmp % 10;
			tmp /= 10;
		}
		if(sum % 4 == 0) {
			printf("%d", i);
			break;
		}
	}
	return 0;
} 

B

那啥?均衡价格?
首先判断无解的情况吧
如果最大值减最小值大于2k肯定无解
那剩下咋办?
二分?
然而不用这么麻烦……
题目好像说要求最大的价格
那答案就是 最小值+k 咯?
Accepted

#include <cstdio>
#include <algorithm>

using namespace std;

int a[110];

int main() {
	int q;
	scanf("%d", &q);
	while(q--) {
		int n, k;
		scanf("%d%d", &n, &k);
		for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
		sort(a + 1, a + n + 1);
		if(a[n] - a[1] > k + k) puts("-1");
		else printf("%d
", a[1] + k);
	}
}

哦对了找最大值和最小值其实不用排序更快
但我太懒了就直接sort了


C

还是先判断-1的情况
如果一直充电都不能玩完就-1
剩下用数学方法简单搞一下……
也说不好……只可意会不可言传反正看代码自行理解呗
Accepted

#include <cstdio>
#include <iostream>
#define ll long long
using namespace std;

int main() {
    int q;
    scanf("%d", &q);
    while(q--) {
        ll a, b, k, n;
        cin >> k >> n >> a >> b;
        int tmp = (k - b * n - 1) / (a - b);
        if(b * n >= k) puts("-1");
        else {
            cout << (n <= tmp ? n : tmp) << endl;
        }
    }
}

D

TLE
据说我这种方法有人卡常能过
于是我试着卡常……
卡常失败。


E/F/G/H

没把D卡过去
所以根本没看这两题


总结:我太菜了

最后奉上CodeForces账号:http://codeforces.com/profile/FruitCandy

原文地址:https://www.cnblogs.com/iycc/p/11099940.html