
codeforces
文章平均质量分 82
zhbbbb!
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #752 (Div. 2)
A Era题目大意给定一个n,和一个长度为n的字符串,问最少添加几个数字使得数组的每一个数字都有a[i] >= i主要思路维护一个添加的数的数量即可,如果i + cnt < a[i]那么再插入一个数AC代码#include <bits/stdc++.h>using namespace std;int n, a[105];int main(){ int T; cin >> T; while(T--) {原创 2021-11-01 11:11:02 · 284 阅读 · 0 评论 -
Educational Codeforces Round 116 (Rated for Div. 2)
纯纯的手速场A AB Balance题目大意给定一个字符串问最少修改几个字母是的ab和ba的数量相同,求修改后的字符串主要思路由于中间的ab ba数量会抵消一部分,例如abbabab等,所以ab,ba的数量最多相差一个,也就是只与开头结尾的字符有关,假如开头结尾的字符相同,那么数量一定相同,如果字符不同,那么数量一定不相同AC代码#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int ma原创 2021-10-30 13:32:32 · 477 阅读 · 0 评论 -
Codeforces Round #748 (Div. 3)
A Elections题目大意给定三个人的选票数,问每个人需要加多少张选票才能超过其他两个人主要思路判断与其他两人差的选票的最大值即可,因为当前可能是选票最多的人所以与0取max即可AC代码#include <iostream>#include <queue>#include <algorithm> #define int long longusing namespace std;#define debug(a) cout << #a原创 2021-10-14 23:20:06 · 248 阅读 · 0 评论 -
Educational Codeforces Round 115 (Rated for Div. 2)
A Computer Game题目大意给定两个长度为n的01串,0能通过,1不能通过,问能否从(1, 1)走到(2, n)主要思路只要从1到n的任意位置不存在上下两个全是1的情况即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#defi原创 2021-10-10 23:26:43 · 270 阅读 · 0 评论 -
Codeforces Round #746 (Div. 2)
A Gamer Hemose题目大意给定一个n, m和长度为n的数组,不能连续取两次相同的数,问取多少次才能使和大于等于m主要思路判断最大的两个数取几次能得到结果即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#define x fir原创 2021-10-04 19:50:05 · 218 阅读 · 2 评论 -
Codeforces Round #744 (Div. 3)
A Casimir’s String Solitaire题目大意给定一个字符串和两种操作删除任意位置A和B删除任意位置B和C问能否将全部字母删除题目大意判断B数量是否等于A+C的数量即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl原创 2021-09-29 18:31:20 · 167 阅读 · 0 评论 -
Codeforces Round #742 (Div. 2) A~F
A Domino Disaster题目大意有n个1*2的多米诺骨牌,给定第一列的字母,求第二列对应的字母主要思路遍历所有字母,当前字母为U输出D,当前字母为D输出U,为L输出L,为R输出RAC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#d原创 2021-09-06 19:42:36 · 242 阅读 · 0 评论 -
Codeforces Round #740 (Div. 2)
A Simply Strange Sort题目大意给定一个长度为n的数组,对根据操作次数数组进行两种操作操作次数为奇数则,枚举i为1, 3, 5…n - 2,如果a[i] > a[i + 1]交换i和i+1操作次数为奇数则,枚举i为2, 3, 6…n - 1,如果a[i] > a[i + 1]交换i和i+1主要思路根据题意模拟即可,最坏情况数组为n, n - 1, … 1,复杂度为n^2AC代码#include <bits/stdc++.h>#define i原创 2021-08-26 00:37:45 · 226 阅读 · 0 评论 -
Codeforces Round #739 (Div. 3) A~F2
A Dislike of Threes题目大意规定是3的倍数或者数的最后一位是3的数是漂亮数,给定一个数n,求第n个不漂亮数是多少主要思路由于n的范围是1000,直接打表即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#define x原创 2021-08-19 18:19:15 · 202 阅读 · 0 评论 -
Codeforces Round #738 (Div. 2)
A Mocha and Math题目大意给定一个长度为n的数组,然后给定一个操作:每次选择一个区间l,r使得a[l] = a[l]&a[r], a[l + 1] = a[l + 1] & a[r - 1]…以此类推,你可以对此操作执行任意次,求最终数组中最大值的最小值主要思路我们思考如何得到最小值&操作不会使数变大,只会使数变小,那么我们能得到的最小值就是把数组中的所有数&起来,那么如何才能让这个值成为答案呢首先我们取l,r为整个数组,其次取l,mid和mid原创 2021-08-16 22:04:42 · 247 阅读 · 0 评论 -
Codeforces Round #737 (Div. 2)
A Ezzat and Two Subsequences题目大意给定一个长度为n的数组,让你把数组中的数任意分成两部分,使得两部分的平均值的和最大,求这个最大值主要思路先给结论,取最大的数为一部分,剩下的数为一部分,下面给出证明,先将数组从小到大排序a[n] + ∑i=1n−1a[i]n−1\frac{\sum_{i=1}^{n-1}a[i]}{n-1}n−1∑i=1n−1a[i] >= ∑i=1ka[i]k\frac{\sum_{i=1}^{k}a[i]}{k}k∑i=1ka[i]原创 2021-08-10 18:43:41 · 262 阅读 · 0 评论 -
Codeforces Round #736 (Div. 2)
A Gregor and Cryptography题目大意给定一个质数n,求任意两个数a, b,使得n % a == n % b主要思路由于给定的数是质数,质数一定是奇数,那么n % 2一定为1,那么b为多少时n % b也等于1呢,答案是n - 1AC代码#include <bits/stdc++.h>using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >原创 2021-08-03 15:52:18 · 146 阅读 · 0 评论 -
Educational Codeforces Round 112 (Rated for Div. 2)
A PizzaForces题目大意给你一个数n,和3种披萨6块15分钟,8块20分钟,10块25分钟,问最少多少分钟能凑齐至少n块披萨主要思路我们先观察到3种披萨都是2.5分钟一块,然后考虑奇数情况,由于披萨都是偶数,我们只能凑成比奇数大1的偶数。于是只剩偶数情况小于等于6的偶数都只能买6块15分钟大于等于6的偶数题目中给出了6 8 10能凑出,于是我们观察6+6 = 12, 6 + 8 = 14,6 + …可以观察到所有偶数都能凑出,所以只需要判断有多少块每块2.5min即可AC代码#原创 2021-08-01 20:58:51 · 145 阅读 · 0 评论 -
Codeforces Round #735 (Div. 2)
A Cherry题目大意给一个长度为n的数组,让你求所有l,r区间的 最大值*最小值 的最大值主要思路假设目前有3个数,a1,a2,a3,那么最大值一定存在于(a1,a2)或者(a2,a3)中。假设原序列为a1,a2,添加a3并不会使最小值变大,只能使最大值变大,那么如果添加a3后,更新(a1, a2, a3)为最优解,那么a3为最大值,于是(a2, a3)不会比最优解差,a2是最小值与最优解相同,a1是最小值优于最优解,所以长度为3的序列的答案一定存在于长度为2的序列。同理长度为4的序列一定存原创 2021-07-30 21:01:43 · 162 阅读 · 0 评论 -
Codeforces Global Round 15
A Subsequence Permutation题目大意给你一个长度为n的字符串,确定一个最小数字k,将k个字符重新排列后字符串有序主要思路记录原字符串,记录排序后的字符串,遍历如果有一个字符不相等ans++,输出ansAC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 200010;int n, a[N];char s[N], s1[N];int ma原创 2021-07-27 01:04:28 · 194 阅读 · 0 评论 -
Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)
A Digits Sum题目大意S(x)为x各个位上的数的和,问在1~n这n个数中有多少个数满足S(x + 1) < S(x)主要思路只有发生进位才会满足S(x + 1) < S(x),统计9,19,29…等个数即可AC代码#include <bits/stdc++.h>using namespace std;#define int long long#define debug(a) cout << #a << " = " <<原创 2021-07-23 16:44:30 · 162 阅读 · 0 评论 -
Codeforces Round #732 (Div. 2)
A AquaMoon and Two Arrays题目大意给两个长度为n的数组,问a数组是否能通过给一个数+1,另一个数-1操作变成数组b,如果能输出操作步数且打印方案主要思路如果suma == sumb那么一定能变成,用st数组记录每个ai - bi的值,所有st数组中大于0的值的和就是操作步数,然后再用两个指针一个指向st中的负数,一个指向st中的正数,输出即可AC代码#include <iostream>#include <cstring>#include &l原创 2021-07-13 11:45:11 · 395 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3)
A Shortest Path with Obstacle题目大意给你一个位置A,一个位置B,还有一个不能经过的位置F,让你判断需要多少步能从A到B主要思路答案为A到B的曼哈顿距离,仅当ABF在一条直线上且F在AB中间时答案+2AC代码#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <stack>#includ原创 2021-07-13 11:44:41 · 118 阅读 · 0 评论 -
Codeforces Round #730 (Div. 2)
A Exciting Bets题目大意给两个数a, b, 这两个数能同时+1或者-1,求这两个数的最大公约数,以及变到最大公约数最少需要几步主要思路a和b不同时,最大公约数d都是a和b的约数,a = x * d, b = y * d且x != y,也就是说a和b的差是一定的,且a和b中至少相差一个d,所以d的最大值为|a - b|a和b相同时,最大公约数为a,b本身,由于能无限增大,输出0 0接下来考虑第二问,设最大公约数|a - b| = d,判断a和b至少需要几步能变到最大公约数为d,由于a原创 2021-07-08 18:07:49 · 179 阅读 · 0 评论 -
Codeforces Round #729 (Div. 2)
A Odd Set题目大意给一个数n,给2*n个数,将他们分为n组,每组两个数,问能否使每组数的和为奇数主要思路只有奇数+偶数=奇数,那么只有当奇数个数==偶数个数时才能凑成AC代码#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <stack>#include <string>#include &原创 2021-07-05 00:23:04 · 556 阅读 · 1 评论 -
Codeforces Round #723 (Div. 2)
A Mean Inequality题目大意给你一个数n和2n个数,把这2n个数凑成一个环,且每个数都不等于左右两边的数的和的一半,求出一个数的排列主要思路首先考虑怎么才能让当前数不等于左右两边的数的和的一半,如果左右两边的数都大于或者小于当前数,那么一定不会出现当前数等于左右两边的数的和的一半,所以我们把数组排序,然后取一个最大的数放在第一个位置,取一个最小的数放在第二个位置,取次大的数放在第三个位置…以此类推, 由于题目保证一定有解这种构造方法一定正确#include <iostream&原创 2021-05-29 16:54:18 · 116 阅读 · 0 评论 -
Codeforces Round #721 (Div. 2)
A And Then There Were K题目大意给一个n,求最大的k满足n & (n−1) & (n−2) & (n−3) & … (k) = 0主要思路当n的二进制位数-1时必然会经过1xxxx -> 10000 这时把前面的数都&起来,由于第一位1无法消除,所以最大的数一定是10000 - 1是第一个能把n的第一位1消除的,所以答案就为n的二进制位的个数减1个1组成的数#include <iostream>#include &原创 2021-05-27 15:53:02 · 132 阅读 · 3 评论 -
Codeforces Round #722 (Div. 2)
A Eshag Loves Big Arrays题目大意给定一个长度为 n 的正整数数组 a ,现在可执行若干次操作(可为 0)具体操作为:选定某个序列,删除严格大于序列的平均数的元素请问最多能删去多少个元素主要思路最多能删去除最小值元素以外的所有元素,所以统计最小值个数即可#include <iostream>#include <cstring>#include <string>#include <algorithm>#include原创 2021-05-25 23:54:16 · 211 阅读 · 0 评论