nyoj-44 字串和 分治+dp+最快解法
来源:互联网 发布:关于养鱼的软件 编辑:程序博客网 时间:2024/05/02 00:01
原题链接》》》
采用算法:分治策略
#include<stdio.h>int num[1000005];int maxsum(int be,int end){ if(end-be==1) return num[be];//只有一个元素,直接返回 int l,L,r,R,i;r=l=0; int mid=(end+be+1)/2;//分治第一步,划分 int max;L=maxsum(be,mid);R=maxsum(mid,end);//子问题递归求解 max=L>R?L:R; L=num[mid-1]; for(i=mid-1;i>=be;i--){l+=num[i];if(l>L) L=l;}//分界点向左的最大连续和L R=num[mid]; for(i=mid;i<end;i++){r+=num[i];if(r>R) R=r;}//分界点向右的最大连续和R return (max>(L+R)?max:(L+R));//把子问题的解与L+R比较}int main(){ int N,n; int i; scanf("%d",&N); while(N--){ scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&num[i]); printf("%d\n",maxsum(0,n)); } return 0;}
dp
#include<stdio.h>#include<string.h>#define Max(a,b) a>b?a:bint num[1000001];int dp[1000001];int main(){ int i,max; int N; scanf("%d",&N); while(N--){ int n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&num[i]); max=dp[0]=num[0]; for(i=1;i<n;i++){ dp[i]=Max(dp[i-1]+num[i],num[i]); if(dp[i]>max) max=dp[i]; } printf("%d\n",max); } return 0; }
另一种方法
#include<stdio.h>int num[1000001];int main(){ int i,sum,max; int N; scanf("%d",&N); while(N--){ int n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&num[i]); sum=0; max=num[0]; for(i=0;i<n;i++){ if(sum<0) sum=0; sum+=num[i]; if(sum>max) max=sum; } printf("%d\n",max); } return 0; }
0 0
- nyoj-44 字串和 分治+dp+最快解法
- NYOJ 44-字串和
- nyoj 44-字串和
- NYOJ 44 字串和
- NYOJ 44 字串和
- nyoj 字串和---44
- nyoj 44 字串和
- NYOJ 字串和之差 (dp)
- NYOJ+dp最大字串和+注意初始化赋值那,
- 分治连续和最大字串
- NYOJ 44 字串和 372 巧克力 (最大连续字串和问题)
- 腾讯2014实习生招聘一道附加题 DP和分治两种解法
- NYOJ 44 最大字串合
- NYOJ-422 字串和之差
- NYOJ 422 字串和之差
- nyoj 422-字串和之差
- NYOJ 422 字串和之差
- 物资调度dfs解法和dp解法
- Linux ./configure && make && make install 编译安装和卸载
- 纵横字谜的答案(Crossword Answer,ACM/ICPC Word Finals 1994,UVa232)
- 让UE4中的TextRender永远面向摄像机,就像Billboard那样!
- 网站栏目html+css代码编写规范
- 《Python网络编程》Part3 Win7系统下使用easy_install和pip安装python的包
- nyoj-44 字串和 分治+dp+最快解法
- 深度剖析Linux与Windows系统的区别
- 11.1 ibox 实例
- java并发编程---volatile关键字
- MySQL设置utf8mb4编码
- Java各种数据类型代码
- overflow:hidden的作用
- 1.在eclipse中搭建web project ssm集成开发环境的详细步骤(采用手动导入jar包的形式,非maven)
- org.apache.hadoop.security.AccessControlException: Permission denied