Codeforces Round #701 (Div. 2) 总结

其实Round699也有打的,但是总结变成鸽子飞走了。
赛前30min:睡觉真舒服。

开场一个A题,看了个题感觉这玩意好像不能直接算。
目测答案肯定小于100,log1e18才64不到。
那就枚举给b加多少,最大拉到300,写,过。

接着一个B题。
愣了一下儿,发现他如果单增,那就头尾的差贡献为1,中间的差贡献为2(因为左边和右边都可以移过去),写,过。

接着一个C题。
第一眼下去woc这C是个啥玩意。
冷静了一下发现是个这东西 A = k b + k    & &   k < b A = kb+k \ \ \&\&\ k<b A=kb+k  && k<b
第一次直接弄成 A = ( k + 1 ) b A=(k+1)b A=(k+1)b,wa了好一会儿才发现过来。。。YGF我对不起你。。。
30min的时候冷静了一下发现我公因式提假了!!!!
改了一下,按照那个假的式子的思路,准备在整除分块的同时内嵌一个等差数列求和,判掉 k < b k<b k<b的情况。
冷静了一下发现,下底分块本来就有个根号,我直接大力枚举根号以下的也是个根号。
隧枚举,期间感觉好像要凉,删了重打了一次。
里面有个if(b>=35000),交上去之前感觉及其玄学,还好过掉了。

接着一个D。
看到 a i j ≤ 16 a_{ij}\le16 aij16就想到了 L C M LCM LCM,然后就没事儿了。
我为什么不先看这D.jpg
写,过。

过了D开个E。
这是个啥,怎么两个点还能换。
一脸不会的样子。
跳跳跳。

打开F。
第一直觉,搞个DS玩一玩。
冷静下来发现,好像只用写个权值线段树维护一下,presum = val的序列有多少种就好了。
再想了想发现我好像没必要玩线段树。我开个map就可以了。
一顿推坐标。
写,过。

回去看E。感觉好难搞啊。
这怕不是个二维dp。
但是1e5我怎么二维。
好凉。
好凉。
啊凉了不会。
不如去叉人吧!
锁了ABC,点开某个老哥的C。
发现没有整除分块!
直接一发最大数据丢上去。
我擦为什么没hack掉。
分数-=50。
经验get:不要试图hack非C语言选手的代码。

洗澡的时候发现这E好像不用看蓝点的位置,反正他丫的是随便跳的。
然后dp的时候记录一下每一层的min,每一层的max,dp[i] + maxson[i]的max,dp[i]-minson[i]的max,带着转就好了。
果然洗澡过题是经典剧本。
洗完澡发现FST失败了。
决定等到出rating再睡觉。
怎么已经快两点半了还没出rating。
我等个毛线我先告辞了。
最终战绩是42名,predictor告诉我要+118
好耶好像不用跑30km了。
睡觉睡觉。

啊对了加个小总结。
四联通产生关系,可以直接指向黑白染色。
免得下次脑抽想不到。

猜你喜欢

转载自blog.csdn.net/weixin_43977362/article/details/113798684