1050 循环数组最大子段和
来源:互联网 发布:在线印刷报价软件 编辑:程序博客网 时间:2024/05/21 07:51
原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050
如果没有循环的条件,那么我们可以用常规的方法算出最大的字段和max1
然后加上循环这个条件,我们可以先求出整个数组的和,然后在求出数组最小子段和,然后然后相减得到max2,然后和ans=max(max1,max2);
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std; #define inf -100000000#define inf1 100000000const int maxn=100000;int a[maxn];int main(){ int n; __int64 sum=0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); sum+=a[i]; } __int64 flag=a[0]; __int64 ma=inf; for(int i=1;i<n;i++) { if(flag<0) flag=a[i]; else flag+=a[i]; if(ma<flag) ma=flag; } __int64 mi=inf1; flag=a[0]; for(int i=1;i<n;i++) { if(flag>0) flag=a[i]; else flag+=a[i]; if(flag<mi) mi=flag; } __int64 max1=max(sum,sum-mi); __int64 ans=max(max1,ma); printf("%I64d\n",ans);}
0 0
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 【循环数组最大子段和】51nod 1050 循环数组最大子段和
- 51Nod 1050 循环数组最大子段和(DP—最大子段和变形)
- DP-循环数组最大子段和
- 循环数组的最大子段和
- 循环数组的最大子段和
- 循环数组最大子段和
- 循环数组的最大子段和
- 循环数组最大子段和
- 【hpuoj】循环数组最大子段和
- 循环数组最大子段和
- 循环数组最大子段和
- 循环数组最大子段和 (dp)
- 循环数组最大子段和
- 循环数组最大子段和
- 1126 求递推序列的第N项(51nod)
- CRB and His Birthday(2015多校)
- 简单的暴力搜索
- 1095 Anigram单词(51nod)
- Bash游戏(博弈)
- 1050 循环数组最大子段和
- 1092 回文字符串(51nod)
- B. Bear and Three Musketeers
- Uva657 - The die is cast
- Uva532(三维搜索)
- Uva 705 - Slash Maze
- Uva 10557 XYZZY
- Uva 10004(二分图的判定)
- 右值与左值解析