Codeforces Round #807 (Div. 2) 总结

比赛地址

比赛情况

排名:816 / 23280
AC:4 / 6

题目分析

A

先排序,最优策略显然是第1个人和第 \(n+1\) 个人,第2个人和第 \(n+2\) 个人,一直到第 \(n\) 个人和第 \(2n\) 个人,然后判断是否存在不符合的情况

B

显然我们希望每一次都 \(j=1\),但因为有0的存在,所以我们需要把0变成1

所以答案为 \(\sum_{i=1}^{n-1}a_i\) 加上第一个非0的数的地方开始到 \(n-1\) 区间里0的个数

C

先计算出它在哪一段,然后看一下其对应位置,然后重复操作

D

可以发现,无论怎么变,就是把连续的1或0缩短或扩长,不能消灭

既然如此,先判左右端点,然后计算连续1个数是否相等,然后每个连续1都必须移动到对应位置,规则是左端点移+右端点移,要注意的是,如果没空间可移还是不行

赛后总结

总得还行,但D题速度不够快,下了小分

先做A,数组开小,WA×1,5min时过

B看完样例后大胆猜了个结论,然后11min时过了

C思路很明显,但一开始没想到怎么打,21min时过

D思路一开始想不到,在纸上推了半小时才有思路

然后死活调不出,调出一个又一个,一直WA

最后69min时弃了,之后机械重复阅读代码找错误

91min时想着不管了,开个long long,开大数组交上去,然后就过了


赛后看D发现真要long long,赛时没分析出

posted @ 2022-07-17 17:01  zhangtingxi  阅读(44)  评论(0编辑  收藏  举报