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

Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 4725    Accepted Submission(s): 2289

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

  假设:
  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
 
Source
 
 
 
一个简单的动态规划,思路和数塔类似
 
从最顶层开始向下遍历     
dp[  i ]  [  j  ] : 表示的是在  第  i  个时刻,  j 个位置 所需要的最小能量值,
 
首先遍历行 ,然后遍历这一行的每个元素,但是这其中的每一个元素  需要存放最小的消耗能量值,就需要 与上一行的每个元素 做差 求出来最小值,
所以就需要一个三重循环,
 
dp[ i ] [ j ] 的初值 赋值为 无穷大,然后第一行初始记做为不消耗能量,就这样能一层一层的推下去,然后遍历循环最后一行,找出来最后一行中的最小值
 
找到这个最小值就是我们需要求出来的最小能量值。
 
 
Java 代码实现
 
 import java.util.Scanner;

 public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int dp[][] = new int [30][30];
int value[][] = new int [30][30]; while(cin.hasNext()){
int N = cin.nextInt();
int K = cin.nextInt(); for(int i = 1;i<=N;i++){
for(int j = 1;j<=K;j++){
value[i][j] = cin.nextInt();
dp[i][j]=Integer.MAX_VALUE;
}
} for(int i = 0;i<=K;i++){
dp[1][i] = 0;
} for(int i = 2;i<=N;i++){
for(int j = 1;j<=K;j++){
for(int w=1;w<=K;w++){
dp[i][j] = Math.min(dp[i][j],dp[i-1][w]+Math.abs(value[i][j]-value[i-1][w]));
}
}
} int minValue = Integer.MAX_VALUE; for(int i = 1;i<=K;i++){
minValue = Math.min(minValue, dp[N][i]);
} System.out.println(minValue); }
} }
 
 
 

《hdu 4540 威威猫打地鼠》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. TCP/IP与IETF的RFC

    究竟是谁控制着 TCP/IP协议族,又是谁在定义新的标准以及其他类似的事情?事实上, 有四个小组在负责Internet技术. 1) Internet协会(ISOC,Internet Society)是 ...

  2. 系统 win 10 专业版 下载地址

    thunder://QUFodHRwOi8veHoyLjgxMDg0MC5jb20vY25fd2luZG93c18xMF9jb25zdW1lcl9lZGl0aW9uc192ZXJzaW9uXzE4MD ...

  3. Linux不进入网卡配置文件更改静态ip

    1.找到网卡配置文件名ls /etc/sysconfig/network-scripts/ 2.备份并查看原始配置文件(若原先有配置IP的,则按照第五点方式修改) 3.修改随机自启和IP地址echo ...

  4. Eclipse 常见Maven web项目

    我是从工作到现在一直用的IDEA,编程软件只要你会技术都没什么区别,只是熟与不熟. 1.下载eclipse软件 百度上搜索eclipse或者到官网https://www.eclipse.org/dow ...

  5. UML-操作契约是什么?

    1.例子 发现: 1).操作契约也是用例模型的一部分. 2).SSD+用例文本+领域模型---->操作契约 2.定义 1).契约有哪些部分? 操作:操作的名称和参数(就是SSD中的系统操作) 交 ...

  6. github新手使用教程

    1.首先打开https://github.com/官网 注册一个github账号 2.注册成功之后,登录账号,创建一个属于自己的库 3.创建完成之后,为了方便电脑上的代码上传到github 仓库上,要 ...

  7. 1)PHP基础介绍

    1.php基础介绍: Perssonal Home Page  ====>PHP 2.应用范围 · web服务器脚本语言 命令行脚本语言     应用程序图形界面 3.PHP运行环境 PHP解释 ...

  8. python实现XML解析的三种方法

    python实现XML解析的三种方法 三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合:二是xml.sax.*模块,它是SAX API的实 ...

  9. Thymeleaf标签学习

    目录 Thymeleaf Thymeleaf的特点 SpringBoot与之整合 Thymeleaf常用语法 变量_变量案列 变量_动静结合 变量_ognl表达式的语法糖 变量_自定义变量 方法 方法 ...

  10. Java和Mysql中的数据类型

    1.mysql中的基本类型 1.整数: tinyint:1个字节   -128~127 smallint: 2个字节  -32768~32767 int :  4个字节 bigint:  8个字节 2 ...