威威猫最近不务正业,每天沉迷于游戏“打地鼠”。 
  每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 
  无话可说... 
   
  我们知道,打地鼠是一款经典小游戏,规则很简单:每隔一个时间段就会从地下冒出一只或多只地鼠,玩游戏的人要做的就是打地鼠。

  假设: 
  1、每一个时刻我们只能打一只地鼠,并且打完以后该时刻出现的所有地鼠都会立刻消失; 
  2、老鼠出现的位置在一条直线上,如果上一个时刻我们在x1位置打地鼠,下一个时刻我们在x2位置打地鼠,那么,此时我们消耗的能量为abs( x1 - x2 ); 
  3、打第一只地鼠无能量消耗。

  现在,我们知道每个时刻所有冒出地面的地鼠位置,若在每个时刻都要打到一只地鼠,请计算最小需要消耗多少能量。

Input输入数据包含多组测试用例; 
每组数据的第一行是2个正整数N和K(1 <= N <= 20, 1 <= K <= 10 ),表示有N个时刻,每个时刻有K只地鼠冒出地面; 
接下来的N行,每行表示一个时刻K只地鼠出现的坐标(坐标均为正整数,且<=500)。 
Output请计算并输出最小需要消耗的能量,每组数据输出一行。 
Sample Input

2 2
1 10
4 9
3 5
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15

Sample Output

1
1
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>#define MAX 501
#define INF 0x3fffffffusing namespace std;int a[21][MAX];
int dp[21][MAX];
int n, k;
int x;int solve( int x, int y ) {//printf( "%d %d\n", x, y );if( x > n || y < 0 || y > 500 ) return 0;if( dp[x][y] != -1 ) return dp[x][y];if( x == n ) return 0;int ans = INF;for( int i = 0; i < MAX; i++ ) {if( a[x + 1][i] == 1 ) {if( x == 0 ) ans = min( ans, solve( x + 1, i ) );else ans = min( ans, solve( x + 1, i ) + abs( i - y ) );}}return dp[x][y] = ans;
}int main() {while( scanf( "%d%d", &n, &k ) != EOF ) {memset( a, 0, sizeof( a ) );memset( dp, -1, sizeof( dp ) );for( int i = 1; i <= n; i++ ) {for( int j = 0; j < k; j++ ) {scanf( "%d", &x );a[i][x] = 1;}}int ans = solve( 0, 0 );printf( "%d\n", ans );}return 0;
}

HDU-4540 威威猫系列故事——打地鼠相关推荐

  1. HDU 4540 威威猫系列故事――打地鼠(DP)

    D - 威威猫系列故事――打地鼠 Time Limit:100MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  2. 动态规划位置hdu 4540 威威猫系列故事——打地鼠(动态规划)

    题记:写这篇博客要主是加深自己对动态规划位置的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 威威猫系列故事--打地鼠 Time Limit: 300/100 MS (Java/O ...

  3. 杭电acm 4540威威猫系列故事——打地鼠

    威威猫系列故事--打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  4. HDU-4540 威威猫系列故事——打地鼠 (动态规划)

    威威猫系列故事--打地鼠                                                                             Time Limit: ...

  5. HDU - 4540 威威猫系列故事——打地鼠

    威威猫最近不务正业,每天沉迷于游戏"打地鼠". 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 无话可说... 我们知道,打地鼠是一款 ...

  6. HDU 4540 威威猫系列故事——打地鼠

    威威猫最近不务正业,每天沉迷于游戏"打地鼠". 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 无话可说- 我们知道,打地鼠是一款经典 ...

  7. hdu——4540威威猫系列故事——打地鼠

    Problem Description 威威猫最近不务正业,每天沉迷于游戏"打地鼠". 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! ...

  8. 威威猫系列故事——打地鼠

    Problem Description 威威猫最近不务正业,每天沉迷于游戏"打地鼠". 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! ...

  9. [HDOJ-4540]威威猫系列故事——打地鼠

    Problem Description 威威猫最近不务正业,每天沉迷于游戏"打地鼠". 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! ...

最新文章

  1. DFT的准备(二)(对离散时间傅里叶变换DTFT采样)
  2. FMDB使用Cached Statement功能
  3. 基于小波变换的图像边缘检测(matlab祖传代码注释)
  4. 写那么多年Java,还不知道啥是Java agent的必须看一下!
  5. Vicor再携创新产品“登陆”ODCC大会,有详情!
  6. gulp项目部署服务器,关于部署:部署后如何在远程服务器上触发gulp / grunt任务?...
  7. All Roads Lead to Rome (30)
  8. JAVA零碎要点016---java去除List中的重复数据_各种方法_随时更新
  9. java二次方程式答案_二次方程式Java?
  10. WeUI 专为微信Web服务量身定制
  11. 20190613 一个SQL问题
  12. 【人工智能】180页PPT,讲解人工智能技术与产业发展
  13. tungsten mysql_ETL之Tungsten Replicator
  14. php版本高无法删除栏目,phpcms不能删除栏目怎么办
  15. linux floating ip,neutron分配浮动IP(floating ip)的方法
  16. gabor filters matlab,gabor filter matlab
  17. 【爬虫实战】12306购票抓包分析以及任务分解
  18. node ncc 打包
  19. 为了后端掌握的粗浅前端
  20. echarts 地图上边画柱状图

热门文章

  1. EXCEL生成随机密码函数
  2. 【线性代数】正交变换与坐标系的关系
  3. 参数控制类毕业论文文献有哪些?
  4. 《AutoCAD全套园林图纸绘制自学手册》一1.3 园林布局
  5. 头脑风暴在计算机中的具体应用,例谈三种头脑风暴样式在综合实践活动中的运用...
  6. Gitbook制作PDF电子书
  7. Samba服务+Samba实验
  8. RISC-V ELF规范和函数调用规范
  9. 刚体运动学公式_哈尔滨工业大学理论力学--第六章--刚体简单运动.ppt
  10. 5 linux基础命令