51Nnod 1050 循环数组最大子段和
来源:互联网 发布:微信连接失败检查网络 编辑:程序博客网 时间:2024/06/02 04:53
分两种情况。
1 不循环,就是按照0--n-1遍历找最大和
2 循环。那么区间肯定是过了起点<n-1并且终点的坐标<起点的坐标。这样终点----起点的坐标这段就是循环数组的最小子段和
然后总和减去这个最小字段和。
判断两种情况的大小
#include<iostream> #include<queue> #include<vector> #include<stack> #include<algorithm>#include<cmath> #include<set>using namespace std; const int mod=1e9+7;int main(){int n;cin>>n;int a[500001];long long SUM=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);SUM+=a[i];}long long sum1=0,out1=0;for(int i=0;i<n;i++){if(sum1+a[i]>0){sum1+=a[i]; }else sum1=0;if(sum1>out1) out1=sum1;}long long minn=0,out2=1<<29;for(int i=0;i<n;i++){if(minn+a[i]<0) minn+=a[i];else minn=0;if(minn<out2) out2=minn; }printf("%lld",max(out1,SUM-out2));return 0;}
阅读全文
1 0
- 51Nnod 1050 循环数组最大子段和
- 【循环数组最大子段和】51nod 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 1050 循环数组最大子段和
- 51Nod 1050 循环数组最大子段和(DP—最大子段和变形)
- 51nod 1050 循环数组最大子段和(最大连续子段问题)
- 51nod 1050 循环数组最大子段和
- 51nod 1050 循环数组最大子段和 dp
- 51 node 1050循环数组最大子段和
- 51nod 1050 循环数组最大子段和
- 51nod 1050 循环数组最大子段和
- 51nod 1050 循环数组最大子段和
- 51nod 1050 循环数组最大子段和
- 51nod-1050 循环数组最大子段和
- 51nod 1050 循环数组最大子段和
- 51Nod 1050 循环数组最大子段和
- eclipse工作空间编码设置
- js递归树
- json输出键值对 python
- eclipse中如何导入本地xsd文件
- 笔记:Shell脚本文件报错:-bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
- 51Nnod 1050 循环数组最大子段和
- EasyUI的学习总结(一)
- EntityFrameWork 课程1
- linux 防火墙IPTABLES 设置IP连接限制
- 从源码看集合ArrayList
- 【Scikit-Learn 中文文档】密度估计
- c++ int和unsignedint溢出原理分析
- Spring MVC 统一异常处理的两种方式
- OS学习笔记——操作系统概论