codeforces 148E Porcelain (dp)
来源:互联网 发布:15年mac怎么装win10 编辑:程序博客网 时间:2024/05/20 20:22
题意:
有一个公主一生气就喜欢摔东西。现在有很多个柜子,每个柜子里面装着很多物品,公主每次摔东西只能随机的选择一个柜子,拿出最左边或者最右边的一个物品摔碎,给出公主最多生气的次数,求生完气之后,公主摔掉物品的价值的最大总和。
题解:
开始这样想dp[i][j]表示前i个点选j个物品的最大价值,然后枚举左右各取多少个,草稿上写了下,四重循环肯定华丽的TL。其实可以先预处理出第i行去几个物品的最大价值。那么就把复杂度将了一维,差不多能过。
#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<map>using namespace std;typedef long long lld;const int oo=0x3f3f3f3f;const lld OO=1e18;const int Mod=1000000007;const int maxn=100+5;const int maxm=10000+5;int dp[maxn][maxm];int sum[maxn][maxn];int w[maxn][maxn];int max(int a,int b,int c){ return max(a,max(b,c));}int main(){ int n,m,t; while(scanf("%d %d",&n,&m)!=EOF) { memset(dp,0,sizeof dp); memset(w,0,sizeof w); for(int i=1;i<=n;i++) { scanf("%d",&t); sum[i][0]=0; for(int j=1;j<=t;j++) { scanf("%d",&sum[i][j]); sum[i][j]+=sum[i][j-1]; } for(int L=0;L<=t;L++) { for(int R=0;R+L<=t;R++) { w[i][L+R]=max(sum[i][L]+sum[i][t]-sum[i][t-R],w[i][L+R]); } } sum[i][0]=t; } dp[0][0]=0; for(int i=1;i<=n;i++) { for(int j=0;j<=m;j++) { for(int k=0;k<=sum[i][0]&&k<=j;k++) { dp[i][j]=max(dp[i][j],dp[i-1][j-k]+w[i][k]); } } } printf("%d\n",dp[n][m]); } return 0;}/**dp[i][j] -> dp[i+1][j+L+R];*/
0 0
- codeforces 148E Porcelain (dp)
- codeforces-148E-Porcelain【DP】
- Codeforces 148 E Porcelain【dp】
- Codeforces 148 E Porcelain dp
- Codeforces 148E Porcelain [预处理+dp背包]
- CodeForces 148E Porcelain dp+背包(水
- codeforces 148E Porcelain(DP, 分组背包)
- CodeForces 148E Porcelain(dp+背包)
- Codeforces 148E Porcelain (dp)
- Codeforces 148E(Porcelain)
- Codeforces 148E. Porcelain
- CodeForces 148E Porcelain
- codeforces-148E Porcelain
- CodeForces 148E – Porcelain
- codeforces 148E Porcelain 多重背包
- Codeforces 148E. Porcelain【多重背包】
- cf105 E. Porcelain 背包dp
- Codeforces 148E Porcelain (预处理+多重背包)
- Extension Writing Part III: Resources
- 问题归纳:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- LINUX学习路线
- ITer创业记录(一)
- POJ Xiangqi 4001 && HDOJ 4121 Xiangqi
- codeforces 148E Porcelain (dp)
- Search Insert Position Leetcode 非二分查找法
- 如何对C语言设计合适的程序调试方案
- PV EV AC BAC EAC ETC等计算公式
- 修改《Unix环境高级编程第二版》程序清单4-7
- 优秀C程序员的基本素质--丰富的想象、严谨的思维
- least square method
- 安卓常用uri
- 文章标题 fzu 2020