20140908 【 动态规划 】 WIKIOI 1043 方格取数
2014-09-08 13:01
316 查看
wilson1068@163.com
首页
天梯
题库
题解
排名
云IDE
评测大厅
作业
讨论区
4人推荐 收藏 发题解
提交代码
报错
题目描述
输入描述
输出描述
样例输入
样例输出
提示
设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例):
某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。
此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。
![](http://wikioi.com/media/image/problem/1043.png)
输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。
只需输出一个整数,表示2条路径上取得的最大的和。
8
2 3 13
2 6 6
3 5 7
4 4 14
5 2 21
5 6 4
6 3 15
7 2 14
0 0 0
67
如描述
搜索可做,(双向广度优先搜索)。。
想了老半天找不到解决方案。。
想不到用简简单单的四维DP就解决了。
佩服啊!!
首页
天梯
题库
题解
排名
云IDE
评测大厅
作业
讨论区
1043 方格取数
4人推荐 收藏 发题解提交代码
报错
题目描述
输入描述
输出描述
样例输入
样例输出
提示
题目描述 Description
设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例):某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。
此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。
![](http://wikioi.com/media/image/problem/1043.png)
输入描述 Input Description
输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。
输出描述 Output Description
只需输出一个整数,表示2条路径上取得的最大的和。
样例输入 Sample Input
82 3 13
2 6 6
3 5 7
4 4 14
5 2 21
5 6 4
6 3 15
7 2 14
0 0 0
样例输出 Sample Output
67
数据范围及提示 Data Size & Hint
如描述搜索可做,(双向广度优先搜索)。。
想了老半天找不到解决方案。。
想不到用简简单单的四维DP就解决了。
佩服啊!!
#include <iostream> #include <algorithm> using namespace std; #define MAXN 20 int n, g[MAXN][MAXN], f[MAXN][MAXN][MAXN][MAXN]; int main(){ int x, y, v; cin>>n; while( cin>>x>>y>>v && ( x||y||v ) ) g[x][y] = v; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) for(int k=1; k<=n; k++) for(int h=1; h<=n; h++){ f[i][j][k][h] = max( max(f[i-1][j][k-1][h], f[i][j-1][k-1][h]) ,max(f[i-1][j][k][h-1], f[i][j-1][k][h-1]) ) + g[i][j] + g[k][h]; if( i==k && j==h ) f[i][j][k][h] -= g[i][j]; } cout<< f <<endl; return 0; }
相关文章推荐
- wikioi 1043 方格取数
- HDU 1565 方格取数(1) HDU 2167 Pebbles 基础状态压缩动态规划
- |Tyvj|NOIP2000|动态规划|P1884 方格取数
- 方格取数——动态规划
- [WIKIOI 2102]石子合并2(动态规划)
- Codevs 1043 ==洛谷 P1004 方格取数
- 动态规划练习一 16:踩方格
- ACM-动态规划16-踩方格
- 方格取数(动态规划经典题)
- wiki 1043 方格取数
- 动态规划练习一 16:踩方格
- codevs 1043 方格取数 (DP)
- dp4--codeVs1043 方格取数
- Vijos P1143 三取方格数(动态规划,多进程DP)
- codevs-1043 方格取数
- ZZULIOJ-1894-985的方格难题(动态规划)
- wikioi 1043 双向dfs
- 动态规划练习题-16(踩方格)
- wikioi方格取数c
- CODE[VS]1043 方格取数(多进程DP)