您的位置:首页 > 其它

zoj 2592 Think Positive(F)

2013-07-23 00:42 232 查看
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1592

要点:1 结果就是所有数的和(如果小于0,就返回0)

2将所有的数排在圆周上(从a1到an顺时针存放),这样所谓的j,就是向顺时针扫描 不管扫描到哪里扫过的和必须都是正数。

在1和-1数目相等的时候刚好是0个j满足,然后增加一个1时可以用反证法证明恰好存在一个j,用数学归纳法可以证明: 设和为n时,j的个数为 f(n),f(n)=n

#include<iostream>
using namespace std;
int main()
{
int size;
cin>>size;
for(int l=0;l<size;l++)
{

int  n;
cin>>n;
int sum=0;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
sum+=temp;
}
if(sum>=0)
cout<<sum<<endl;
else cout<<0<<endl;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: