Eugene and an array CodeForces - 1333C (思维)
2024-08-28 20:19:25
题目大意:求好数组的个数,所谓好数组 1好数组是原数组的一段连续的子数组,2 好数组不包含元素和为0的子数组。
题解:唉,这个题目把我给些懵了....我一开始的想法求后缀和,保存位置,然后枚举前缀和,二分查找大于当前位置的第一个后缀合,但是ai的范围太大了,位置保存不了,然后又瞎搞了很久....最后看的题解,没想到这么简单....(吐了)直接用前缀和,如果两个前缀和相等比如果说[1,l]和[1,r]那么[l+1,r],这段区间内的和一定为0,
然后好数组怎么求呢?当然就是[l+2,r],[l+3,r]....[r,r]。也就是他的区间长度。。。我们可以枚举没个前缀和,让i做右端点,然后用mp保存最右边的左端点。
code:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=2e5+;
map<ll,ll >mp;
int main(){
ll n;
cin>>n;
ll sum=;
ll tmp=;
mp[]=;
ll x,maxl=;
ll ans=;
for(ll i=;i<=n+;i++){
cin>>x;
sum+=x;
if(mp[sum]!=) maxl=max(maxl,mp[sum]+);
ans+=i-maxl;
mp[sum]=i;
}
cout<<ans<<endl;
return ;
}
最新文章
- table隔行变色
- C#常用控件介绍
- bzoj2219: 数论之神
- Android软件安全开发实践(下)
- java\c程序的内存分配
- kafka0.8.2以下版本删除topic
- I - Caocao&#39;s Bridges - hdu 4738(求桥)
- 1369 - Answering Queries(规律)
- Spring拦截器总结
- HDU--2114
- sftp无法连接问题
- cocos2d-x JS 本地玩家位置跟服务器玩家位置转换相关
- 一名前端Web架构师的成长之路(转载)
- [转载]C#中Invoke的用法()
- 【k8s】基础概念 + 工作原理
- ZooKeeper学习之文件系统的布局和格式
- Nginx缓存功能、防盗链、URL重写
- java 通用对象排序
- Windows和Linux系统如何退出python命令行
- 解决jquey中当事件嵌套时,内层事件会执行多次的问题
热门文章
- Selenium系列(六) - 强制等待、隐式等待、显式等待
- JavaScript----简介及基础语法
- fastText 训练和使用
- 蓝桥杯——一步之遥,扩展gcd的应用
- Java集合工具类使用的一些坑,Arrays.asList()、Collection.toArray()、foreach
- java两数相乘基础算法
- thinkphp 路径 (纯转)
- 力软敏捷框架7.0.6 葡萄城报表升级到ar14版本
- [leetcode] 位操作题解-2
- 用Python简单批量处理数据