Codeforces Round #674 (Div. 3) D,E,F
D题意给定一个长度为n的数组,每次操作可以给两个数加一个任意的数,目的是最少的操作使任意的连续子串的和不为0思路我们可以从前往后用贪心的思路,找到一个点如果他和前面的子串和为0,那么我就给这个点的前面添加一个数,可能不太会证明,但是思路就是这样的我们只需要统计出这个点到上一个前面加过操作点的之间的所有点的前缀和,可以放在set里面,如果set里面有这个点的权值,就说明这个点前面的子串有和为0的,即进行一次操作,然后以这个点为开始继续重新计算,直到最后一个点代码#include<iostr
原创
2020-09-30 14:03:10 ·
210 阅读 ·
0 评论