Educational Codeforces Round 116 (Rated for Div. 2)
差亿点过三题
A题,考虑将相同的字母压缩,要
这时考虑到修改一位便可,于是只需
1 | s[0]=s.back(); |
B题,先求出k在二进制下最高位1的位置,然后按等比数列求和求出
不开long long见祖宗。
C题,考虑到
A:
1 | LL t; |
B:
1 | LL quikpower(int b) |
C:
1 | LL t,n,k; |
差亿点过三题
A题,考虑将相同的字母压缩,要
这时考虑到修改一位便可,于是只需
1 | s[0]=s.back(); |
B题,先求出k在二进制下最高位1的位置,然后按等比数列求和求出
不开long long见祖宗。
C题,考虑到
A:
1 | LL t; |
B:
1 | LL quikpower(int b) |
C:
1 | LL t,n,k; |
感受到了div.3的友好度
A题先求出三数最大值
1 | LL t; |
B题
数据太弱,错误判断都能过。。
1 | if(cnt[0]+cnt[1]==0) |
A:
先考虑是一道数学题,对于某一位上D题一致。
注意oj数据后带无效空格?回车,单纯getchar判断会报WA
1 | LL n, k, c[N][N], mark = 2; |
B:
考虑异或的性质,我们先求出两个数组每一位上
求出每一位上的异或值再乘以基数
最后累加即可
1 | const LL N = 1e5 + 86,p=1e9+7; |
C:
列几个情况贪心即可
1 | LL n,x,y,res=0,lx,ly; |
D:
先预处理出结果用bitset储存,然后直接判断,辣鸡1也是YES
1 | bitset<100009> vis; |
E不会,老是WA
F:
二维前缀和模版
1 | const LL N = 1e3 + 86; |
G:
按题意搞即可,可采用位操作优化
1 | LL cnt=0; |
同样只过了A题
英文菜鸡,看样例才知道是不能连续使用同一weapon然后还**地分
UPD:
B题和做的思路差亿点点,可惜自己多虑跑去干E
由题意得出在
E题:
首先切入点是考虑每一位上的情况:对于第
而事实上如果遍历每一位的较强要求下的结果,就能覆盖到原题较弱要求下的解
然后上快读都被报TLE,最后map换成cc_hash_table才3166ms苟过测试点9
UPD:
C如果所有节点异或和为而对于分割成三个部分以上的情况
A:
1 | const LL N = 1e3 + 86; |
B
1 | onst LL N = 1e5 + 86; |
E
1 | #include<ext/pb_ds/assoc_container.hpp> |
C:
1 | const int N = 1e5 + 86; |