SDUT2857:艺术联合会(简单dp)
2015-02-03 15:26
288 查看
链接: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2857
题目解析:
这是去年校赛的题目,当时没做出来,现在才补,真水,这题就是一个简单dp。
看第k个人画第m幅画的时候,要考虑两个时间,1.第k-1个人画完第m幅画的时间,2.第k个人画完第m-1幅画的时间。
这两个时间的最大者+t[m][k]就是第k个人画完第m幅画的时间。
代码如下:
题目解析:
这是去年校赛的题目,当时没做出来,现在才补,真水,这题就是一个简单dp。
看第k个人画第m幅画的时候,要考虑两个时间,1.第k-1个人画完第m幅画的时间,2.第k个人画完第m-1幅画的时间。
这两个时间的最大者+t[m][k]就是第k个人画完第m幅画的时间。
代码如下:
#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <math.h> #include <queue> #define inf 0x3f3f3f3f typedef long long ll; #define eps 1e-9 using namespace std; int n,m,t[50010][6]; int dp[50010][6]; int main() { int T; scanf("%d",&T); while(T--) { memset(t,0,sizeof(t)); scanf("%d%d",&m,&n); for(int i=1; i<=m; i++) { for(int j=1; j<=n; j++) { scanf("%d",&t[i][j]); } } memset(dp,0,sizeof(dp)); for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { dp[j][i]=max(dp[j][i],(max(dp[j][i-1],dp[j-1][i])+t[j][i])); } } printf("%d",dp[1] ); for(int i=2; i<=m; i++) printf(" %d",dp[i] ); printf("\n"); } return 0; }
相关文章推荐
- SDUT 2857 艺术联合会(DP)
- SDUT 2857-艺术联合会(dp)
- 校赛题之( SDUT 2857 艺术联合会 && SDUT 2860 生日Party )
- 【简单的线性DP】SDUT 3924 疯狂的bLue
- 【sdut】1309 不老的传说问题(简单环形区间DP)
- (简单dp) poj 3356 AGTC
- pku 1050 菜鸟就是笨简单dp搞半天!
- 杭电2151 简单DP
- 简单dp——[Usaco2008 Mar]River Crossing渡河问题
- HDU 1087 Super Jumping! Jumping! Jumping! 简单DP
- POJ 3671 Dining Cows 简单DP
- boj 1345 二叉树问题 简单的dp
- zoj 1074 || poj 1050 To the Max(简单DP)
- HDU 1087 简单DP
- zoj 2402 简单dp
- POJ2192 Zipper(简单DP)
- dp + dfs 状态保存(重点) hdu 1074 sdut 1356
- POJ-3624-Charm Bracelet-简单0/1背包、动态规划、DP
- HDU 1231 (简单DP问题)
- Road or Flight——ACM简单DP