NYOJ-234 吃土豆
2013-05-25 10:43
363 查看
吃土豆
时间限制:1000 ms | 内存限制:65535 KB难度:4
描述Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 grid. Now you want to eat the beans and collect the qualities, but everyone must obey by the following rules: if you eat the bean at the coordinate(x, y), you can’t eat the beans anyway at the coordinates listed (if exiting): (x, y-1), (x, y+1), and the both rows whose abscissas are x-1 and x+1.
Now, how much qualities can you eat and then get ?
输入There are a few cases. In each case, there are two integer M (row number) and N (column number). The next M lines each contain N integers, representing the qualities of the beans. We can make sure that the quality of bean isn't beyond 1000, and 1<=M,N<=500.输出For each case, you just output the MAX qualities you can eat and then get.样例输入
4 6 11 0 7 5 13 9 78 4 81 6 22 4 1 40 9 34 16 10 11 22 0 33 39 6
样例输出
242
来源2009 Multi-University Training Contest 4 题解:仔细想想,其实这道题横坐标和纵坐标的状态是一样的,
对于取点(i, j):
则在列上,不能取旁边相邻的两列,即 j-1 列和 j+1 列;
同理,在行上,不能取旁边相邻的两行,即 i-1 行和 i+1 行。
所以,可以对行和列单独考虑:
对于列级状态转移方程: map[i][j] = max (map[i][j-2],map[i][j-3]);
对于行级状态转移方程: dp[i] = max(dp[i-2], dp[i-3]) + max( map[i][n-1], map[i]
);(假定一共有n列) 参考 :http://www.cnblogs.com/A-way/archive/2013/05/08/3066236.html
#include <cstdio> #include <iostream> #include <cstring> using namespace std; int main() { int n, m; int map[505][505], dp[505]; while(~scanf("%d%d", &n, &m)) { memset(map, 0, sizeof(map)); memset(dp, 0, sizeof(dp)); for(int i = 3; i < n+3; ++i) for(int j = 3; j < m+3; ++j) { scanf("%d", &map[i][j]); map[i][j] += max(map[i][j-2], map[i][j-3]); } for(int i = 3; i < n+3; ++i) dp[i] = max(dp[i-2], dp[i-3]) + max(map[i][m+1], map[i][m+2]); printf("%d\n", dp[n+2]); } return 0; }
相关文章推荐
- NYOJ234-吃土豆(双层DP)
- Nyoj 234 吃土豆
- NYOJ 234 吃土豆
- hdu-Beans(动态规划,nyoj-234-吃土豆)
- nyoj 234 吃土豆
- NYOJ 234 吃土豆(基础dp)
- nyoj234 吃土豆 01背包
- nyoj-动态规划-234-吃土豆-201308131021
- NYOJ 题目234 吃土豆
- nyoj 234 吃土豆
- NYOJ_234_吃土豆
- NYOJ-234-DP(吃土豆)
- nyoj-234-吃土豆(动态规划)
- NYOJ 234 吃土豆
- 吃土豆_nyoj_234(动态规划).java
- nyoj 吃土豆 234 (双层DP)
- NYOJ234吃土豆
- NYOJ234吃土豆(双层动态规划)
- nyoj 234 吃土豆
- NYOJ 吃土豆(动态规划)