hdu 1024 dp
来源:互联网 发布:python pyperclip 编辑:程序博客网 时间:2024/06/16 05:15
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024
题意:上一道题和这道题挺像,不过上一题比这个简单。。题意就是n个数,求m个不相交段,是m段和最大
思路:本弱菜自己都没理解透彻。就不坑人了。
<span style="font-family:Microsoft YaHei;">#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define ll long longconst int maxn = 1000010;int n,m;int nn[maxn],dp[maxn],pre[maxn];int main(){ while(~scanf("%d%d",&m,&n)){ for(int i=1;i<=n;i++) scanf("%d",&nn[i]); memset(dp,0,sizeof(dp)); memset(pre,0,sizeof(pre)); int mm; for(int i=1;i<=m;i++){ mm = -999999999;// for(int j=i;j<=n;j++){ dp[j] = max(dp[j-1]+nn[j],pre[j-1]+nn[j]); pre[j-1] = mm; if(dp[j]>mm)mm = dp[j]; } } printf("%d\n",mm); } return 0;}</span>
说下我自己的理解。。pre[j]中保存的是由前j个数组成i-1段时的最大和,mm保存的是由前j个数组成i段时的最大和,所以是后更新。
第二层循环中j从i开始,这样就保证了类似前3个数中6段和这样不合理的情况。。
0 0
- HDU 1024(DP)
- hdu 1024 DP
- hdu 1024 dp
- hdu 1024 dp
- hdu 1024(dp*优化)
- hdu 1024 dp
- hdu 1024 dp
- hdu 1024 dp
- HDU 1024 DP
- [DP] HDU 1024
- hdu 1024 dp滚动数组
- hdu 1024 dp 解题报告
- HDU 1024(DP+滚动数组)
- HDU DP
- DP? HDU
- DP? HDU
- DP? HDU
- 【dp】HDU
- 金山推WPS软件租赁模式:唯有改变才能生存
- Codeforces 472D. Design Tutorial: Inverse the Problem(一种逆向判定树成立的办法,从Kruskal到dfs)
- 仿微米网Android客户端全部UI
- hibernate笔记加强版
- 在微软STC实习快9个月了
- hdu 1024 dp
- hihoCoder1039 - 字符消除
- V$UNDOSTAT 和 V$ROLLSTAT
- php HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR的使用
- c#3.0后增加知识总结
- CentOS7安装JDK1.7
- 关于乱码处理遇到的问题
- Swift 实现简单自定义TableViewCell
- J2EE中设置和获取cookie