poj 1976 A Mini Locomotive_简单dp
2014-04-24 22:34
399 查看
题目链接
题意:给你n个数,你可以选3堆,每堆最多连续选m个,问选择结果最优解
思路:dp[i][j]=max(dp[k][j-1]+sum[k]-sum[i],dp[i-1][j])
题意:给你n个数,你可以选3堆,每堆最多连续选m个,问选择结果最优解
思路:dp[i][j]=max(dp[k][j-1]+sum[k]-sum[i],dp[i-1][j])
#include <iostream> #include<cstdio> #include<cstring> using namespace std; #define MAXN 50010 int dp[MAXN][4],num[MAXN],sum[MAXN]; int main(int argc, char** argv) { int t,n,i,j,k,m; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&num[i]); scanf("%d",&m); sum[0]=0; for(i=1;i<=n;i++) sum[i]=sum[i-1]+num[i]; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++){ for(j=1;j<=3;j++){ k=i-m; if(k<0) k=0; dp[i][j]=max(dp[k][j-1]+sum[i]-sum[k],dp[i-1][j]); } } printf("%d\n",dp [3]); } return 0; }
相关文章推荐
- POJ 1976 A Mini Locomotive (DP 最大连续m子段和)
- POJ 1976 A Mini Locomotive (DP 最大连续m子段和)
- POJ 1976 A Mini Locomotive【DP】
- poj-1976 A Mini Locomotive(DP,记忆化搜索)
- POJ - 1976 A Mini Locomotive(背包DP)
- POJ 1976 A Mini Locomotive DP
- POJ 1976 A Mini Locomotive DP
- poj 1976 A Mini Locomotive(二维dp)
- poj 1976 A Mini Locomotive (DP)
- POJ_1976 A Mini Locomotive (dp)
- poj 1976 A Mini Locomotive 有依赖的背包问题
- poj 1976 A Mini Locomotive(0/1背包)
- poj 1976 A Mini Locomotive(01背包)
- POJ 1976 A Mini Locomotive (动态规划)
- poj 1976 A Mini Locomotive(01背包)
- poj 1976 A Mini Locomotive(01背包)
- poj 1976 A Mini Locomotive 动规
- M - A Mini Locomotive POJ - 1976
- POJ 1976 A Mini Locomotive(背包)
- A Mini Locomotive POJ - 1976