最小正子段和 51Nod
来源:互联网 发布:淘宝买问道手游帐号 编辑:程序博客网 时间:2024/05/17 08:25
最小正子段和51Nod - 1065
N个整数组成的序列a
),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的。
例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。
第2 - N+1行:N个整数
84-15-2-126-2
1
code:
#include <iostream>#include <algorithm>using namespace std;struct node{ long long sum; int pos;}Node[50005];bool cmp(node a,node b){ if(a.sum == b.sum){ return a.pos > b.pos; } return a.sum < b.sum;}int main(){ int i,flag,n; long long sum = 0,temp,ans = 0; cin >> n; Node[0].pos = 0; Node[0].sum = 0; for(i = 1; i <= n; i++){ cin >> temp; sum += temp; Node[i].pos = i; Node[i].sum = sum;//求前缀和 } sort(Node,Node+n+1,cmp);//根据前缀和大小排序 flag = 0; for(i = 1; i <= n; i++){ if(Node[i].pos - Node[i-1].pos > 0 && Node[i].sum - Node[i-1].sum > 0){//当构成序列(即i < j && f(i) < f(j)时进行判断)找满足这种情况的最小 if(flag == 0){ flag = 1; ans = Node[i].sum - Node[i-1].sum; } else{ if(Node[i].sum - Node[i-1].sum < ans){ ans = Node[i].sum - Node[i-1].sum; } } } } cout << ans << endl; return 0;}
阅读全文
0 0
- 最小正子段和 51Nod
- 51nod 1065:最小正子段和
- 51nod 1065 最小正子段和
- 51NOD 1065 最小正子段和
- 51nod 1065 最小正子段和
- 51nod-1065:最小正子段和
- 51nod 1065 最小正子段和
- 51nod 1065 最小正子段和
- 51nod 1065 最小正子段和
- 51nod 1065 最小正子段和
- 51nod 1065 最小正子段和
- 51nod 1065 最小正子段和 -暴力
- 51nod oj 1065 最小正子段和 【贪心--区间和】
- 51nod 1065 最小正子段和(前缀和)
- 51Nod 1065 最小正子段和 前缀和
- 51Nod 1065 最小正子段和(归并 贪心,好题)
- 51Nod-1065-最小正子段和
- 51 nod 1065 最小正子段和 排序大法好
- PaperWeekly 第52期 | 更别致的词向量模型:Simpler GloVe
- 4.6 对象的组合
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
- 移动端:ajax调用后报error错误,返回错误状态码为0
- 在win10 64位下编译,提示[C++ Error] E2075 Incorrect project override option: (x86)\borland\cbuilder6\lib\vcl
- 最小正子段和 51Nod
- 人工智能学习路线
- 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
- PullToRefresh
- Services in Domain-Driven Design
- 对list进行修改移除报错java.util.ConcurrentModificationException
- Qt、Qte、Qtopia、Qvfb、Qpe概念区别
- Maven 错误 "Failure to transfer"
- 《后来》