题目戳我

\(\text{Solution:}\)

若\([l,r]\)子段和是\(0,\)则\(sum[r]=sum[l-1].\)

于是我们可以考虑维护当前哪一个前缀和出现过。对于区间\([l,r]\)若其子段和为\(0\)则在\(r-1\)的地方插入一个\(+\infty\)即可。

初始化要把\(0\)赋值为出现过。

#include<bits/stdc++.h>
using namespace std;
int n,a[500010];
map<long long,bool>mp;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i)scanf("%d",&a[i]);
mp[0]=true;
long long s=0;
int ans=0;
for(int i=1;i<=n;++i){
s+=a[i];
if(mp[s]){
ans++;
mp.clear();
mp[0]=true;
s=a[i];
}
mp[s]=true;
}
cout<<ans<<endl;
return 0;
}
```cpp

最新文章

  1. re
  2. AJAX获取数据成功后的返回数据如何声明成全局变量
  3. Hibernate的批量插入(&amp;&amp;JDBC)
  4. Mongodb故障转移
  5. Oracle数据库备份 expdp/impdp导出导入命令
  6. IOS 谓词
  7. java length size
  8. java核心知识点学习----多线程间的数据共享和对象独立,ThreadLocal详解
  9. 知识总结提炼-AP模块
  10. JNI错误总结(转)
  11. [大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用&lt;2&gt;
  12. java对象表示方式--XStream
  13. 一键发布部署vs插件[AntDeploy],让net开发者更幸福
  14. jQuery 选择器demo练习
  15. [HTML]点击按钮,页面总是跳回顶端的解决方法(Clicking an button,always resets the view to top of page)
  16. cf Queries on a String
  17. Arrays 类的 binarySearch() 数组查询方法详解
  18. vue iview tree checked改变 不渲染的问题
  19. 跟我学Spring Boot(一)创建Spring Boot 项目
  20. Dinic算法——重述

热门文章

  1. Unity3d UGUI插件之TSTableView
  2. Fitness - 07.23 - Congratulation!
  3. PyCharm切换解释器版本
  4. Queries for Number of Palindromes(区间dp)
  5. 记录一个基于Java的利用快排切分来实现快排TopK问题的代码模板
  6. Java的String.matches不区分大小写正则表达式匹配示例
  7. ZT:通过Find命令找到你要找的东西
  8. 用命令方式启动、停止appium服务和app
  9. python基础:内置函数zip,map,filter
  10. unittest单元测试执行用例的顺序