3664-顺序表应用7:最大子段和之分治递归法
来源:互联网 发布:淘宝免单活动在哪里看 编辑:程序博客网 时间:2024/06/05 14:34
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>using namespace std;const int MAX = 50000+10;int maxx, cnt, n, a[MAX];int maxsum(int l, int r){ int sum = 0; cnt++; if(l==r) { if(a[l]>=0)sum = a[l]; else sum = 0; } else { int mid = (l+r)/2; int leftsum = maxsum(l, mid); int rightsum = maxsum(mid+1, r); int s1, s2, ss; s1 = ss = 0; for(int i = mid; i>=l; --i) { ss+=a[i]; if(ss>s1)s1 = ss; } s2 = ss = 0; for(int i = mid+1; i<=r; ++i) { ss+=a[i]; if(ss>s2)s2 = ss; } sum = s1+s2; sum = max(sum, leftsum); sum = max(sum, rightsum); } return sum;}int main(){ scanf("%d",&n); for(int i = 0; i<n; ++i) scanf("%d", &a[i]); cnt = 0; maxx = maxsum(0, n-1); printf("%d %d\n", maxx, cnt); return 0;}
阅读全文
0 0
- 【分治递归法】顺序表应用7:最大子段和之分治递归法
- 3664-顺序表应用7:最大子段和之分治递归法
- 3664 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- SDYTACM 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 顺序表应用7:最大子段和之分治递归法
- 1146-面向对象程序设计上机练习七(类和对象)
- Apple开发者账号收到延迟审核邮件,怎么办?
- java中两个map的融合(两个map有相同字段)
- 安装FastDfs
- 3329-顺序表应用5:有序顺序表归并
- 3664-顺序表应用7:最大子段和之分治递归法
- 3665-顺序表应用8:最大子段和之动态规划法
- 51nod 1066 Bash游戏
- 远程登陆mysql(指定端口号)
- 信用卡秒到
- BSUIR Open 2017 Finals Financial Reports(线段树)
- linux下安装不同python版本的切换
- unity5.5安装
- [BZOJ2733][HNOI2012]永无乡-Treap-启发式合并