Codeforces Eugene and an array
发布日期:2021-09-25 23:57:28 浏览次数:9 分类:技术文章

本文共 1272 字,大约阅读时间需要 4 分钟。

题目让你找出一个数组的 nonempty array (题目中要求从前面或者结尾删除去若干个数且不为空) ,只要这个数组中部分的元素之和为0那么这个得到的数组就不是完美的的(也就是不符合答案的),现在我们只需要找到连续子段和为0的序列,找到起点 st 和终点 ed ,那么答案就是两边可选择的方案数相乘(st-1+1)(n-ed+1) ,为了避免重复,可以记录一下上一个和为0的点的位置,以它为向左的方案数的终点即可,因为再向左的方案已经被上一个和为0的数组计算过了

如何找和为0的子序列呢?可以记录下前缀和,当前的缀和与前面相等的时候,那么就出现了和为0的序列,比如说 4 1 2 -3,发现a[1]=a[4]=4,那么起点就是2,终点就是4,终点很好找,就是当前枚举到的 i ,起点可以用mp存每个前缀和数值的下标,可以用 mp[4]=1 找到st-1,算出答案即可。

还要注意下算sum的时候转一下 LL ,比赛debug心态爆炸,找了半天逻辑的错结果发现是没转 LL ,以为sum开了 LL 就万事大吉了。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define X first#define Y secondusing namespace std;typedef long long LL;typedef pair
PII;const int N=200110,mod=1e9+7,INF=0x3f3f3f3f;const double eps=1e-6;int n;int a[N];LL pre[N],ans;map
mp;int main(){ // ios::sync_with_stdio(false);// cin.tie(0); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]),pre[i]=pre[i-1]+a[i]; mp[0]=0; int st=-1,ed=-1; for(int i=1;i<=n;i++) { LL t=pre[i]; if(!mp.count(t)) { mp[t]=i; continue; } if(st==-1&&ed==-1) { st=mp[t]+1,ed=i; ans+=(LL)(n-i+1)*(LL)(mp[t]+1); } else { if(mp[t]>=st) { ans+=(LL)(mp[t]-st+1)*(LL)(n-i+1); st=mp[t]+1,ed=i; } } mp[t]=i; } LL sum=(LL)n*(n+1)/2; printf("%lld\n",sum-ans); return 0;}

转载地址:https://blog.csdn.net/DaNIelLAk/article/details/105402017 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:游戏智商 动规
下一篇:upc 真假鉴定 思维+模拟

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月07日 00时55分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

《微观动机与宏观行为》精髓:个人的微观动机,是如何影响宏观行为结果的? 2021-06-29
《国富论》精髓:亚当·斯密提出的对后世影响深远的三个经济学理论:劳动分工理论、生产要素理论和宏观调控理论 2021-06-29
《动荡的世界》精髓:什么是动物精神?动物精神又是怎么影响2008年全球经济危机的,以及我们该如何预防动物精神,避免危机再次发生。 2021-06-29
《投资最重要的事》精髓:利用逆向思维,掌握既冷静又勇猛的投资方法,成为投资界真正厉害的人。 2021-06-29
《周期》书中的精髓:如何利用周期,掌握世界的发展趋势,实现财富积累。 2021-06-29
《伟大的博弈》书中的精髓:华尔街是如何从一条小街,一步步发展为世界金融中心的。 2021-06-29
《逃不开的经济周期》书中的精髓:经济周期是推动创新变革和经济增长以及复兴的关键力量。 2021-06-29
《朋友还是对手》书中的精髓:奥地利学派和芝加哥学派两派共识远多于分歧,两派首先是朋友,其次才是对手。 2021-06-29
《动物精神》书中的精髓:人类的非理性面影响经济决策,这些有可能是金融危机的根源。 2021-06-29
《赢家的诅咒》书中的精髓:人性的复杂让主流经济学出现了诸多失灵,如何用更多理论完善经济学大厦是经济学家的重要使命 2021-06-29
《巴菲特法则》书中的精髓:用好巴菲特企业前景投资法则,股票投资稳赚不赔。 2021-06-29
《战胜华尔街》书中的精髓:业余投资者如何根据行业特点选好股票,赚得比专业的投资者还要多? 2021-06-29
《巴菲特的估值逻辑》书中的精髓:在投资过程中不断总结经验,不断提升投资能力,不断探索、加深对好公司的理解,成就了巴菲特的投资神话。 2021-06-29
《股市稳赚》书中的精髓:用简单的神奇公式进行股票投资,获得稳定而持久的收益。 2021-06-29
《曾国藩的经济课》书中的精髓:我们如何像曾国藩一样,在遇到道德和环境冲突时,既能保持自己的道德,又能调动资源,帮助自己成事。 2021-06-29
《富人的逻辑》书中的精髓:为什么暴富起来的人会在短期内失去财富,我们又该如何去创造财富和持续拥有财富。 2021-06-29
作文提升~老师整理的优美比喻句太实用 2021-06-29
作文提升~老师整理的优美拟人句太实用 2021-06-29
作文提升~老师整理的优美排比句太实用 2021-06-29
作文提升~老师整理的夸张句,太实用了,赶快收藏 2021-06-29