博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
acdream 1682 吃不完的糖果(环形最大子段和)
阅读量:5012 次
发布时间:2019-06-12

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

 

Problem Description

娜娜好不容易才在你的帮助下"跳"过了这个湖,果然车到山前必有路,大战之后必有回复,大难不死,必有后福!现在在娜娜面前的就是好多好多的糖果还有一些黑不溜秋的东西!不过娜娜眼中只有吃不完的糖果!娜娜高兴地快要蹦起来了!

 

这时有一位挥着翅膀的女孩(天使?鸟人?)飞过来,跟娜娜说,这些糖果是给你的~(娜娜已经两眼放光)~你可以带走~(娜娜已经流下了口水)~但是~(神马?还有但是?)~这位神仙姐姐挥一挥翅膀~飘过了一片云彩,糖果和那些黑不溜秋的东西顿时飞了起来,落到地上成了摆成一个奇怪的图形。

 

神仙姐姐很满意,转过来对娜娜说:“这些糖果和黑洞(神马?黑洞?)分成n堆,每堆要么都是糖果,要么是黑洞,围成一个圈(即第1堆的旁边是第n堆和第2堆),你可以选择连续若干堆,然后带走,不过这些黑洞嘛,会馋嘴的小孩吸进去,你必须拿糖果去中和掉。”

 

娜娜喜欢糖果,但不喜欢动脑子~于是就把这个问题交给你,怎样才能让娜娜带走最多的糖果呢?

Input

多组数据,首先是一个正整数t(t<=20)表示数据组数

对于每组数据,包括两行,第一行是一个正整数n(3<=n<=100000)表示堆数

第二行是n个整数x[i](1<=|x[i]|<=1000),如果是个正整数,则说明这是一堆数量为x[i]的糖果,如果是个负整数,则说明这是一个需要用abs(x[i])颗糖果去中和的黑洞。

Output

对于每组数据,输出一个整数,表示娜娜最多能带走的糖果数。

Sample Input

351 2 3 4 551 -2 3 -4 55-1 -2 -3 -4 -5

Sample Output

1570

Hint

对于样例1,娜娜可以把所有的糖果都拿走,所以输出15(=1+2+3+4+5)

对于样例2,娜娜可以拿走第1,2,3,5堆的糖果,别忘了这是摆成一个圈,所以输出7(=1+(-2)+3+5)

对于样例3,等待娜娜的是5个黑洞,可怜的娜娜,一个糖果都拿不掉,所以输出0

由于输入数据较多,请谨慎使用cin/cout

 

 

 

 

题意:给一个环形序列,求最大连续子段和。

思路:设arr[0]和arr[n-1]这个地方为缺口。

有两种可能:

(1)答案不经过缺口处。那么就是普通的最子段和了。

(2)答案经过缺口处。那么此环的最小子段和就必定不会经过缺口处。将数组中所有的元素都取相反数,然后再按照(1)的方法求最大子段和,设为anti-sum。然后用整个序列之和sum加上anti-sum就行了。

 

1 #include 
2 using namespace std; 3 const int N=100005; 4 int arr[N], t, n; 5 int cal() 6 { 7 int cnt=0, sum=0; 8 for(int i=0; i
cnt) cnt=sum;12 if(sum<0) sum=0;13 }14 int cnt1=0, sum1=0, total=0;15 for(int i=0; i
cnt1) cnt1=sum1;20 if(sum1<0) sum1=0;21 }22 23 return cnt>(total+cnt1)?cnt:total+cnt1;24 }25 26 27 int main()28 {29 // freopen("input.txt", "r", stdin);30 cin>>t;31 while(t--)32 {33 scanf("%d",&n);34 for(int i=0; i
AC代码

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xcw0754/p/4603059.html

你可能感兴趣的文章
Python装饰器的个人小理解
查看>>
为什么百万医疗险越来越多,到底选哪款?
查看>>
如何检测 51单片机IO口的下降沿
查看>>
扫描识别控件Dynamic .NET TWAIN使用教程:如何将事件添加到应用程序中
查看>>
创建和修改主键 (SQL)
查看>>
2018-2019 ICPC, NEERC, Southern Subregional Contest(训练记录)
查看>>
20145233 《信息安全系统设计基础》第7周学习总结
查看>>
linux设备驱动程序第3版学习笔记(例程2--hellop.c)
查看>>
玩转storm
查看>>
第10章 使用Apache服务部署静态网站
查看>>
关于给予webApp框架的开发工具
查看>>
c语言编写的生成泊松分布随机数
查看>>
Maven入门笔记
查看>>
iOS webView的常见属性和方法
查看>>
理解position:relative
查看>>
Codeforces Round #344 (Div. 2) Messager KMP的应用
查看>>
20145308刘昊阳 《Java程序设计》第4周学习总结
查看>>
js倒计时
查看>>
EasyUI datagrid 格式 二
查看>>
Android虹软人脸识别sdk使用工具类
查看>>