随笔分类 - codeforces
摘要:A. Lucky Year 题意:找比\(n\)大的下一个只有一位数不是\(0\)的数。 先和\(n\)同位数,然后高位一直加一直到大于\(n\)。 点击查看代码 void solve() { i64 n; std::cin >> n; i64 x = 1; while (x * 10 <= n)
阅读全文
摘要:A. Maximal Binary Matrix 题意:构造一个01矩阵,有\(k\)个1,并且对于主对角线对称,而且字典序最大。 按行对称的放1即可。主对角线对称的地方就是自己,只用放一个1。 点击查看代码 void solve() { int n, k; std::cin >> n >> k;
阅读全文
摘要:A. The Play Never Ends 题意:三个人比赛,每场两个人比赛,另一个人在观众席,观众席替换输的人,但如果有一个人以及连续上场两次,就得下场,让其它两个人比。求第一场比赛在观众席的人在第\(k\)场是不是也能在观众席。 找规律,模拟一下发现第二三场不得不上台,然后第四场下台,就这样一
阅读全文
摘要:A. New Bus Route 题意:给你\(n\)个数,其差的绝对值最小的数对就有几个。 答案一定在排序后相邻的两个数里。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i <
阅读全文
摘要:A. FizzBuzz Remixed 题意:求\([0, n]\)里有多少数模3和模5的值一样。 我是打表发现每15个数的开头3个数满足要求。 点击查看代码 void solve() { int n; std::cin >> n; std::cout << n / 15 * 3 + std::mi
阅读全文
摘要:A. Make It Zero 题意:给你一个数组,每次操作一个区间,让这个区间的数都变成区间的异或和,操作不能超过8次,使得数组全变成0。 如果数组是偶数,直接操作两次\([1, n]\)就行了。 如果数组是奇数,也是先操作一下\([1, n]\),这时数组都变成了一样的数,然后操作\([1, n
阅读全文
摘要:A. k-Factorization 题意:选\(k\)个大于\(1\)的数,使得乘积为\(n\)。 我们前面让每个数越小越好,然后让最后一个数补上就行,这样能凑出来最多的数。那么就直接分解质因子,这样能安排最多的数。 点击查看代码 void solve() { int n, k; std::cin
阅读全文
摘要:A. k-th divisor 题意:找\(n\)的第\(k\)个因子。 数据范围看起来很大,实际上可以暴力找约数,然后排序。 点击查看代码 void solve() { i64 n, k; std::cin >> n >> k; std::vector<i64> a; for (i64 i = 1
阅读全文
摘要:A. New World, New Me, New Array 题意:你要选\(n\)个值域在\([-p, p]\)之间数, 使得总和恰好为\(k\)。 \(k\)跟\(-k\)都是一样的,那么令\(k=|k|\),每次填\(min(k, p)\),然后\(k = k - min(k, p)\)。就
阅读全文
摘要:A. King Moves 点击查看代码 void solve() { std::string s; std::cin >> s; if ((s[0] == 'a' || s[0] == 'h') && (s[1] == '1' || s[1] == '8')) { std::cout << 3 <
阅读全文
摘要:A. Doremy's Paint 3 题意:给你你个数组,你要重排它使得每两个相邻数的和都相同。 \(a_1 + a_2 = a_2 + a_3\),那么\(a_1 = a_3\),\(a_2 + a_3 = a_3 + a_4\),那么\(a_2 = a_4\),然后发现奇数位置都相等,偶数位置
阅读全文
摘要:Educational Codeforces Round 15 题意:求严格递增子数组的最长长度。 双指针经典题。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; ++
阅读全文
摘要:A. Fashion in Berland 题意:有\(n\)个数,需要满足正好有\(n-1\)个\(0\)或者\(n=1\)时正好一个\(1\)。 记录\(1\)的个数,判断即可。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<in
阅读全文
摘要:A. Johny Likes Numbers 题意:找出比\(n\)大的最小的\(k\)的倍数。 求出\(n\)是\(k\)的几倍后加一乘\(k\)。 点击查看代码 void solve() { int n, k; std::cin >> n >> k; std::cout << (n / k +
阅读全文
摘要:A. Buses Between Cities 题意:\(A\)站每\(a\)分钟一趟车,\(ta\)分钟到\(B\),\(B\)站每\(b\)分钟一趟车,\(tb\)分钟到\(A\),从上午五点开始发车,一直到23:99最后一趟。给出你的坐车时间,求能遇到多少车。 模拟题。把时间都换算成分钟,那么
阅读全文
摘要:A. Co-prime Array time limit per test1 second 题意:给你一个数组,你要插入尽可能少的数,使得任意两个相邻的数都互质。 如果相邻两个不互质,就插入一个1即可。 点击查看代码 void solve() { int n; std::cin >> n; std:
阅读全文
摘要:A. Gabriel and Caterpillar 题意:一个毛毛虫要从\(x\)到\(y\),每天早上12小时每小时走\(a\)米,晚上12小时每小时走\(b\)米,求第几天到\(y\)。 这题读题给我读傻了,题目说一开始是从下午两点开始观察的,我以为它也要到某天的下午两点后到\(y\)才能观察
阅读全文
摘要:A. Grandma Laura and Apples 题意:一开始你有一个\(n\),然后经过若干次运算,直到\(n = 0\),如果当前\(n\)是偶数,则直接除\(2\),获得\(\frac{n}{2} \times m\)的钱,如果当前\(n\)是奇数,则获得\(\frac{n}{2} \t
阅读全文
摘要:A. Was there an Array? 题意:一个长度为\(n\)的\(a\)数组,变成了长度为\(n-2\)的\(b\)数组,对于每个\(i \in [2, n - 1]\),如果\(a_i == a_{i-1} \&\& a_i == a_{i+1}\)则\(b_{i-1} = 1\),否
阅读全文
摘要:A. Tennis Tournament 按题意模拟。 点击查看代码 void solve() { int n, b, p; std::cin >> n >> b >> p; int ans1 = 0, ans2 = n * p; while (n > 1) { int k = 1; while (
阅读全文

浙公网安备 33010602011771号