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,赛时没分析出
本文来自博客园,作者:zhangtingxi,转载请注明原文链接:https://www.cnblogs.com/zhangtingxi/p/16487746.html