随笔分类 - 比赛记录
摘要:这场着实有点自闭 A 签到 B 竟被这题卡了好几十分钟,实际上就每次从大往小选,尽量选大的,越简单的题反而越糊涂 #include<bits/stdc++.h> using namespace std; const int N=1e5+7; int n,w,ans,a[20],id[N*10]; i
阅读全文
摘要:这就是签到场,小的n次方号打的,打的原因是被上周edu&div1&ARC&ABC四连杀来找找自信 ABC 阅读理解题,签到不解释 D 稍微需要脑子的签到。找众数就行,如果不超过n/2,始终拿它删当前出现次多的数,一直这样,发现答案是n%2;如果超过就是2*mx-n(拿这个数删其他数) #includ
阅读全文
摘要:好不容易打一场CF结果unrated了,不过这场体验极差确实该unrated,感觉是div3难度 A 签到,先把所有第一次出现的数从小到大排序,剩下的随便排 B 按a[i]%m分类,然后特判0组和m/2(m为偶数时)的组,然后剩下的两两配对即可 #include<bits/stdc++.h> usi
阅读全文
摘要:A 这题WA了2次,出师不利。n>k的情况很特殊,若n%k==0答案是1,否则是2,n<=k时,答案是k/n上取整 #include<bits/stdc++.h> using namespace std; int main() { int T,n,k,rest;scanf("%d",&T); whi
阅读全文
摘要:签到场…… ABC 签到 D 设等差数列位[s+1,...,s+t],则和为t(2s+t+1)/2=n,也就是t(2s+t+1)=2n,枚举2n的因子t,判断(2n)/t是否为奇数即可,记得每次+2(因为[-i,...,i]=0) #include<bits/stdc++.h> using name
阅读全文
摘要:AB 签到 C 大力DP,f[i][j]表示走到当前位置的方案数,但问题是无法考虑没走过路径的未填位置。不过很好解决,向右走的时候实际方案=原方案数*3^(走过的列下侧的未填位置数),向下走的时候实际方案=原方案数*3^(走过的行右侧的未填位置数),这样可以处理掉所有的未填位置。 #include<
阅读全文
摘要:由于不想被退学忙于学习,好久不打了…… A 感觉不是那么签到……问题可以转化为10^n=am^2+bm+c,求b,然后就转化为普通的快速幂即可 #include<bits/stdc++.h> using namespace std; long long n; int m,a=10,ret=1; in
阅读全文
摘要:上大学以后第一次CF居然打的这么好……新号StudyingMother打的,rank35,rating=837。 手速不行思维慢,还天天WA,我哭辽…… A 签到,输出字符串长度 B 发现尽量往右边跳最优,-1可视为-(k+1)(第k次跳跃),然后发现那一次如果恰好能跳到x或者跳到>=x+2,则这样
阅读全文
摘要:老年选手ABC都打不好了,这些题给一年多前的我看都是执掌题……思路都想到但不会写,弱智题也弱智错误百出,这就是上古退役选手的状态…… ABC 签到不解释 D 前缀和,注意long long,因为此问题WA了2发 #include<bits/stdc++.h> using namespace std;
阅读全文
摘要:这段时间有点忙,好久没打CF了 A 考虑到n与n-1互质,可以把数列分成两段操作[1,1][2,n],全部加成n的倍数,再操作[1,n]即可,注意特判n=1 #include<bits/stdc++.h> using namespace std; typedef long long ll; cons
阅读全文
摘要:AB 太水了 C 打表发现答案是n!-2n-1,但是不能就这样草草了事,理性分析:考虑不成环的方案(因为看起来远少于成环的),加入一个新元素的时候,如果原图成环,则怎么放都成环,如果不成环,放在开头和结尾则不成环,故方案数每次*2 D 当n>=4时不符合条件输出-1,对于每个2*2的矩阵都满足条件,
阅读全文
摘要:AB 签到 C 开始还写个假的模拟法,后来发现可以直接贪心,从大到小枚举答案x,发现相同数的个数不超过n/x+1,且等于n/x+1的不超过n%x即可 #include<bits/stdc++.h> using namespace std; const int N=1e5+7; int n,m,ans
阅读全文
摘要:AB 签到 C 计算子树内的人总数,然后可以计算出经过此节点时开心的人数目,然后若存在节点开心人数目小于儿子之和,则输出NO,反之输出YES,注意特判特殊情况 #include<bits/stdc++.h> #define int long long using namespace std; con
阅读全文
摘要:A 签到 B 直接DP,f[i][j]表示前i步j步向左的最大值,位置可以直接计算 #include<bits/stdc++.h> using namespace std; const int N=1e5+7; int n,k,z,ans,a[N],f[N][6]; int main() { int
阅读全文
摘要:用灰号打的div2但我还是写div1题解吧(因为div2前2题过水) A 可以发现这样的做法:每次找到最靠后的与b不同从串,然后通过旋转满足条件。但要判断a的第一位与该位是否相同,若相同,则需变换第1位使得其满足翻转后与该位相同,操作数2*n。至于翻转操作,打标记即可 #include<bits/s
阅读全文
摘要:A 被这题卡住了,没写出来,想着类似AC自动机了,发现讨论一堆还可能有错。实质上就是每个位置枚举即可。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const string str="abacaba"; int
阅读全文
摘要:退役一周年祭 A 没看清是任意顺序耽误了几分钟,首先最大值应该>=2个,若是3个则都为最大值,否则就两个次大值一个最大值 #include<bits/stdc++.h> using namespace std; int T,a[3]; int main() { cin>>T; while(T--)
阅读全文
摘要:ABC 签到,过水已隐藏 D 做完第一次操作后数字只有2e5,位数很小,可以直接模拟了 #include<bits/stdc++.h> using namespace std; const int N=2e5+7; int n,n1,s1,s2,a[N],pw1[N],pw2[N]; char ch
阅读全文
摘要:A 略 B 记录每种字母的出现次数前缀和,然后p[i][j]表示字母j出现至少i次的最靠前的位置,然后直接搜取最大即为答案,O(26(n+m)+Σ|ti|),差点想到二分去了,复杂度会多个log #include<bits/stdc++.h> using namespace std; const i
阅读全文
摘要:A 略 B 被删了,被这个假题搞自闭了,显然没做出来。 C 开始莽了个NTT,后来发现会TLE,其实是个SB前缀和,对于这题,我无**说。 #include<bits/stdc++.h> using namespace std; const int N=1e6+7,mod=998244353; in
阅读全文

浙公网安备 33010602011771号