HDU 4540 威威猫系列故事——打地鼠
2014-02-22 11:25
204 查看
题目链接~~>
做题感悟:这题第一次做是在圣诞大战时做的,当时没做出来,现在想想真是弱爆了!(动态规划是硬伤!)也许是当时比赛气氛不一样。
解题思路:其实和暴力差不多。一层一层的暴力。假设有 n 行 m 列,把数存入 g 数组中,最优解存入F中。
动态方程:F[ i ][ j ] = min( abs ( g [ i ][ j ] - g [ i - 1 ][ j ] ) + F[ i ][ i - 1 ] ) (0 <= j < m , 1 <= i < n) ;
代码:
做题感悟:这题第一次做是在圣诞大战时做的,当时没做出来,现在想想真是弱爆了!(动态规划是硬伤!)也许是当时比赛气氛不一样。
解题思路:其实和暴力差不多。一层一层的暴力。假设有 n 行 m 列,把数存入 g 数组中,最优解存入F中。
动态方程:F[ i ][ j ] = min( abs ( g [ i ][ j ] - g [ i - 1 ][ j ] ) + F[ i ][ i - 1 ] ) (0 <= j < m , 1 <= i < n) ;
代码:
#include<stdio.h> #include<iostream> #include<map> #include<string> #include<string.h> #include<stdlib.h> #include<math.h> #include<queue> #include<algorithm> using namespace std ; int main() { int n,m ; int g[50][50] ; int b[50][50] ; while(~scanf("%d%d",&n,&m)) { memset(b,0,sizeof(b)) ; for(int i=0 ;i<n ;i++) for(int j=0 ;j<m ;j++) scanf("%d",&g[i][j]) ; int min,mx ; for(int i=1 ;i<n ;i++) for(int j=0 ;j<m ;j++) { min=abs(g[i-1][0]-g[i][j])+b[i-1][0] ; for(int k=1 ;k<m ;k++) { mx=abs(g[i-1][k]-g[i][j])+b[i-1][k] ; min=min < mx ? min : mx ; } b[i][j]=min ; } min=b[n-1][0] ; for(int i=1 ;i<m ;i++) min = min < b[n-1][i] ? min : b[n-1][i] ; printf("%d\n",min) ; } return 0 ; }
相关文章推荐
- Hdu 4540 威威猫系列故事——打地鼠
- hdu 4540 威威猫系列故事——打地鼠 dp
- HDU 4540 威威猫系列故事——打地鼠 (状态压缩DP)
- hdu——4540威威猫系列故事——打地鼠
- HDU 4540 威威猫系列故事——打地鼠(树塔问题简单变形)
- hdu 4540 威威猫系列故事——打地鼠 dp小水题
- HDU 4540 威威猫系列故事――打地鼠(DP)
- hdu 4540 威威猫系列故事——打地鼠(DP)
- hdu 4540 威威猫系列故事——打地鼠
- HDU 4540 威威猫系列故事——打地鼠 (DP)
- HDU 4540(威威猫系列故事——打地鼠)动态规划
- HDU - 4540 威威猫系列故事——打地鼠(dp之路)
- HDU 4540 威威猫系列故事——打地鼠(简单DP)
- hdu 4540 威威猫系列故事——打地鼠
- HDU4540 ——威威猫系列故事——打地鼠
- HDU - 4540 威威猫系列故事——打地鼠
- C - 威威猫系列故事——打地鼠 HDU - 4540
- hdu 4540 威威猫系列故事——打地鼠
- 威威猫系列故事——打地鼠 HDU - 4540
- 威威猫系列故事——打地鼠HDU - 4540 (简单dp)