hdu 1024(滚动数组的学习)
2013-03-13 10:03
351 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024
学习了一下滚动数组,dp中经常卡内存,而利用滚动数组可以大大节省内存空间,不错哦。
View Code
学习了一下滚动数组,dp中经常卡内存,而利用滚动数组可以大大节省内存空间,不错哦。
View Code
#include<iostream> #include<cstring> #include<algorithm> const int N=1000010; const int inf=1000000000; using namespace std; int a ; int dp ,pre ;//dp[i][j]表示第j个数前组成i组的最大值; //为了节省内存,可以用pre[j]来保存前一次求得的dp[j-1]的最大值,这样相当于数组在不断进行滚动 //最后输出temp即可; int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF){ for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } memset(dp,0,sizeof(dp)); memset(pre,0,sizeof(pre)); int temp; for(int i=1;i<=m;i++){ temp=-inf; for(int j=i;j<=n;j++){ dp[j]=max(dp[j-1]+a[j],pre[j-1]+a[j]); pre[j-1]=temp; temp=max(temp,dp[j]); } } printf("%d\n",temp); } return 0; }
相关文章推荐
- hdu 1024(滚动数组的学习)
- HDU 1024 Max Sum Plus Plus(DP+滚动数组)
- hdu 1024 Max Sum Plus Plus 一串数字中,m段连续数字最大和 滚动数组+dp
- DP+滚动数组-HDU-1024-Max Sum Plus Plus
- HDU - 1024 Max Sum Plus Plus(DP + 滚动数组)
- HDU - 1024 Max Sum Plus Plus (滚动数组)
- HDU 1024 最大M子段和 滚动数组优化
- HDU 1024(动态规划+滚动数组+决策优化,求m个不相交字段和最大值)
- (转载)HDU 1024 滚动数组
- hdu 1024(滚动数组优化)
- DP ( 滚动数组 )——Max Sum Plus Plus ( HDU 1024 )
- 【HDU 1024】Max Sum Plus Plus(DP+滚动数组优化+最大m段字段之和)
- HDU 1024 Max Sum Plus Plus (DP·滚动数组)
- HDU 1024 Max Sum Plus Plus【DP+滚动数组】
- 【hdu 1024】Max Sum Plus Plus —— dp && 滚动数组
- hdu 1024 Max Sum Plus Plus (滚动数组 &&动态规划)
- Hdu 1024 Max Sum Plus Plus 动态规划+滚动数组
- HDU 1024 Max Sum Plus Plus(普通dp && 滚动数组优化)
- hdu1024(动态规划+滚动数组优化)
- hdu 1024 Max Sum Plus Plus(滚动数组)(DP)