随笔分类 - codeforces
摘要:A. To Zero 题意:给你一个\(n\)和\(k\), \(k\)是一个奇数,你每次可以选择\(1\)到\(k\)的某个数让\(n\)减掉。但如果\(n\)是奇数你也必须选奇数,是偶数你也必须选偶数。 如果\(n\)是奇数,我们就减去\(k\), 因为奇数减奇数后就是偶数,不能再减回奇数,所以
阅读全文
摘要:A. Nearest Minimums 题意:求相隔最近的两个最小的数。 记录上一个出现的位置,遍历即可。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; ++ i)
阅读全文
摘要:A. Binary Matrix 题意:给你一个\(01\)矩阵,你要修改尽量少的位置,使得每行每列的异或和都是\(0\)。 有三种修改方式: 修改一个位置使得一行一列满足 对于两个不满足条件的行,分别修改同一列的位置,使得两个行满足。 对于两个不满足条件的列,分别修改同一行的位置,使得两个列满足。
阅读全文
摘要:A. Hungry Student Problem 枚举 点击查看代码 void solve() { int n; std::cin >> n; for (int i = 0; i <= n / 3; ++ i) { if ((n - 3 * i) % 7 == 0) { std::cout <<
阅读全文
摘要:A. Chess For Three 记录观众是哪一个,观众不能是赢家。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i
阅读全文
摘要:A. Local Extrema 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; } int ans = 0; fo
阅读全文
摘要:A. Book Reading 点击查看代码 void solve() { int n, t; std::cin >> n >> t; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; } for (int
阅读全文
摘要:A. Draw a Square 题意:\(4\)个点,两个在\(x\)轴上,两个在\(y\)轴上,求它们能不能形成正方形。 显然它们离原点的距离都要相同。 点击查看代码 void solve() { int l, r, d, u; std::cin >> l >> r >> d >> u; if
阅读全文
摘要:A. Chores 点击查看代码 void solve() { int n, k, x; std::cin >> n >> k >> x; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; } int an
阅读全文
摘要:A. Quasi-palindrome 题意:给你一个数,在前面加上一些前导零使得这个数是回文。 模拟。 点击查看代码 void solve() { std::string s; std::cin >> s; auto check = [&](std::string s) -> bool { int
阅读全文
摘要:A. Curriculum Vitae 题意:删去最少的数,使得任意一个1后面没有0。 记录前缀0个数和后缀1个数。然后枚举即可。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i
阅读全文
摘要:A. Chess Tourney 题意:把一个数组分成两组,使得一个数组的每一个数都的大于另一个数组的每一个数。 排序后判断中间两个数是不是相等。 点击查看代码 void solve() { int n; std::cin >> n; n <<= 1; std::vector<int> a(n);
阅读全文
摘要:A. Text Volume 题意:统计每个单词大写字母个数的最大值。 点击查看代码 void solve() { int n; std::cin >> n; std::string s; getchar(); std::getline(std::cin, s); s += " "; int ans
阅读全文
摘要:A. United We Stand 题意:把\(a\)分成两个不为空的数组,使得第二个数组的任意一个数不是第一个数组任意一个数的因子。 如果第二个数组的数都比第一个大就符合条件。无解的情况就是数组的数都相同。 点击查看代码 void solve() { int n; std::cin >> n;
阅读全文
摘要:A. Binary Protocol 题意:一个数字的数位上的数变成了其值为长度的连续个1,并用0把这些串连接在一起。现在要你恢复原来的数字。 用个\(sum\)记录连续的1的个数,每次遇到0就把\(sum\)加入答案,并使\(sum=0\)。 点击查看代码 void solve() { int n
阅读全文
摘要:A. Diplomas and Certificates 点击查看代码 void solve() { i64 n, k; std::cin >> n >> k; i64 cnt = (n / 2) / (k + 1) * k; std::cout << cnt / k << " " << cnt <
阅读全文
摘要:A. Simple Design 题意:找大于等于\(x\)的第一个数位和是\(k\)的倍数的数。 \(k\)很小,则答案不会大于\(x\)很多。暴力枚举即可。 点击查看代码 void solve() { int n, k; std::cin >> n >> k; for (int i = n; ;
阅读全文
摘要:A. Treasure Hunt 题意:你要从\((x_1, y_1)\)走到\((x_2, y_2)\),每次横坐标必须移动\(x\)个单位,纵坐标必须移动\(y\)个单位。求能不能到达。 先看两个坐标的的距离能不能整除\(x, y\),然后看走的步数是不是奇偶性相同,如果相同则一个坐标可以通过反
阅读全文
摘要:A. Chemistry 题意:一个字符串,能不能删除不超过\(k\)字符和重排后是回文。 记录每个字符的数量,如果是奇数则我们可能需要删除,最多留一个不能删的放在中间。 点击查看代码 void solve() { int n, k; std::cin >> n >> k; std::string
阅读全文
摘要:A. The Contest 题意:有\(n\)个数的和\(sum\),在\(m\)的个区间里如果\(l_i \leq sum \leq r_i\)则输出\(sum\),否则如果\(l_i \geq sum\),输出\(l_i\)。 点击查看代码 void solve() { int n; std:
阅读全文

浙公网安备 33010602011771号