D. Non-zero Segments(前缀和)
创始人
2024-01-29 17:26:09
0

Problem - 1426D - Codeforces

题意:

科利亚得到一个整数数组a1,a2,...,an。这个数组既可以包含正整数也可以包含负整数,但是Kolya不喜欢0,所以这个数组不包含任何零。

Kolya不喜欢他的数组中某些子段的总和为0,子段是数组中一些连续的元素段。

为了达到这个目标,你可以在数组的任何一对相邻元素之间插入任何整数(整数可以是任何:正数、负数、0,任何绝对值,甚至是巨大到无法用大多数标准编程语言表示的整数)。

你的任务是找出你必须插入Kolya数组中的最小整数,以使产生的数组不包含任何和为0的子段。

输入
输入的第一行包含一个整数n(2≤n≤200000)--Kolya数组中的元素数。

输入的第二行包含n个整数a1,a2,...,an(-109≤ai≤109,ai≠0)--Kolya数组的描述。

输出
打印你必须插入Kolya数组中的最小整数,使产生的数组不包含任何总和为0的子段。

例子
InputCopy
4
1 -5 3 2
outputCopy
1
输入复制
5
4 -2 3 -9 2
输出拷贝
0
输入复制
9
-1 1 -1 1 -1 1 1 -1 -1
输出拷贝
6
输入复制
8
16 -5 -11 -15 10 5 4 -4
输出拷贝
3
注意
考虑第一个例子。只有一个总和为0的子段,它开始于第二个元素,结束于第四个元素。插入一个元素就够了,这样数组就不会包含任何总和等于0的子段了。例如,可以在数组的第二和第三元素之间插入整数1。

在第二个例子中没有总和为0的子段,所以你不需要做什么。

题解:

我们每次记录前缀和出现过的情况,让插入一个数,然后插入的数++,map清空,前缀和从当前开始,

关键是为什么插入的数要++,我看很多题解并没有说明这个问题,或是理解错了

大个比方现在我遇到一个数x加上后,前缀出现过,插入了一个1,然后我们把map清空,让前缀=x,但是后面又遇到一个数加上后前缀和等于x,如果我么还插入1,就会出现一个问题,

1 9........ 1 9

前面的插入的两个1,1区间和会为0,

#include
#include
#include
#include
#include
#include
using namespace std;
long long a[300050];
void solve()
{int n;cin >> n;map f;long long s = 0;f[0] = 1;int ans = 0;for(int i = 1;i <= n;i++){int k;cin >> k;s+= k;if(f[s] == 1){ans++;s = k;f.clear();f[0] = 1;}f[s] = 1;}cout<> t;while(t--){solve();}
}
//
//abcdef
//babcdef
//babcdefedcba

 

相关内容

热门资讯

最适合农村创业的小本创业小项目... 从当前情况看,建筑节能生产、销售的小本创业项目相对较少,导致经营集中,竞争激烈适合农村的小本生意点子...
成都世运会倒计时30天 各场馆...   2025年第十二届世界运动会将于8月7日至8月17日在四川成都举行,今天(7月8日)成都世运会迎...
我国6月份CPI同比上涨0.1...   新华社北京7月9日电(记者 潘洁)国家统计局9日发布数据显示,6月份,全国居民消费价格指数(CP...
小吃创业项目小本创业者的好小吃... 现在的小吃市场,相继出现很多的小吃品种,既好吃,价格又便宜,得到了很多顾客的青睐,市场极为火爆,因此...
【贵州贵州创业小本项目创业好项... 为什么穷人多不敢去创业蛋糕创业蛋糕店创业30岁女人创业做什么适合女性创业的大学生适合什么创业毕业生如...
贵州黔东南小本创业项目优选无醇... 贵州黔东南小本创业项目优选无醇酒碗灶供应厂家npx9贵州黔东南小本创业项目优选无醇酒碗灶供应厂家现在...
最新适合中小城市的六个小本生意... 最适合中小城市的小本生意2:绿色早餐配送现在经济发展社会稳定,人们必然越来越重视健康,且认识到早餐与...
适合小城市做的小本创业小城市小... 当下的人们生活中对个性化的一些物品越来越喜欢,尤其是生活中日常值得留念的照片,存的太多了没处保存,时...
投资小本创业开店项目加盟 投资... ♥♥♥盒饭加盟♥♥♥现在人们生活的节奏很快,每天进出写字楼的人们都是步履匆匆,快节奏的生活让中午外出...
九**小本创业开店项目 九**... 首页企业动态餐饮文章详情非常不错的9个初次小本创业项目推荐!时间:2017-07-浏览:1421随着...