POJ 2907 Collecting Beepers DFS+回溯+剪枝

原创 2011年01月20日 12:28:00

http://poj.org/problem?id=2907

 

Collecting Beepers
Time Limit: 1000MS   Memory Limit: 65536K

Description

Karel is a robot who lives in a rectangular coordinate system where each place is designated by a set of integer coordinates (x and y). Your job is to design a program that will help Karel pick up a number of beepers that are placed in her world. To do so you must direct Karel to the position where each beeper is located. Your job is to write a computer program that finds the length of the shortest path that will get Karel from her starting position, to each of the beepers, and return back again to the starting position.

Karel can only move along the x and y axis, never diagonally. Moving from one position (ij) to an adjacent position (ij + 1), (ij − 1), (i − 1, j), or (i + 1, j) has a cost of one.

You can assume that Karel’s world is never larger than 20 × 20 squares and that there will never be more than 10 beepers to pick up. Each coordinate will be given as a pair (xy) where each value will be in the range 1 through the size of that particular direction of the coordinate system.

Input

First there will be a line containing the number of scenarios you are asked to help Karel in. For each scenario there will first be a line containing the size of the world. This will be given as two integers (x-size and y-size). Next there will be one line containing two numbers giving the starting position of Karel. On the next line there will be one number giving the number of beepers. For each beeper there will be a line containing two numbers giving the coordinates of each beeper.

Output

The output will be one line per scenario, giving the minimum distance that Karel has to move to get from her starting position to each of the beepers and back again to the starting position.

Sample Input

1
10 10
1 1
4
2 3
5 5
9 4
6 5

Sample Output

The shortest path has length 24

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

迷宫中回溯法的剪枝——奇偶剪枝

问题描述 在一个n行m列的迷宫中,每一步只能向上、下、左、右中任意方向走一格,迷宫中有围墙的地方是无法到达的。从起点s开始,能否刚好走t步,到达e。 例如在下面5行5列的迷宫中,能否恰好经过9步,...
  • code_pang
  • code_pang
  • 2013年04月23日 13:46
  • 2729

poj2773(欧拉函数的应用 或者 用容斥原理+dfs+二分)

题意:给出m和k,求与m互质的第k个数 要用到的zh
  • u013509299
  • u013509299
  • 2014年05月03日 19:51
  • 792

HDU1010(回溯剪枝)

一. 题意:小狗从S出发,1s跳一个格子,Ts后恰好跳到D,不可以跳跳过的格子。问是否跳得出去。 二. 易错点:我要先发图! 1. 要记得剪枝。 2. 在判断是否到达门的时候,最好用坐标,因为用m...
  • H992109898
  • H992109898
  • 2016年03月02日 22:26
  • 483

poj 1190 生日蛋糕(DFS+剪枝)

生日蛋糕 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12965   Accepted: 4564 D...
  • u014458169
  • u014458169
  • 2014年04月01日 17:40
  • 311

算法:连续邮资问题(回溯+动态规划+剪枝)

问题描述假设国家发行了n种不同面值的邮票,并且规定每张信封上最多只允许m张邮票。连续邮资问题要求对于给定的n和m的值,给出邮票面值的最佳设计,即在1张信封上可贴出从邮资1开始,增量为1的最大连续邮资区...
  • HOH_mizukun
  • HOH_mizukun
  • 2017年12月22日 14:03
  • 221

POJ - 1190 生日蛋糕 dfs+剪枝

思路:说一下最重要的剪枝,如果当前已经使用了v的体积,为了让剩下的表面积最小,最好的办法就是让R尽量大,因为V = πR 2H,A' = 2πRH,A' = V / R * 2 ,最大的R一定是取当...
  • flyawayl
  • flyawayl
  • 2017年04月04日 22:02
  • 477

POJ 1190 生日蛋糕(DFS+剪枝)

本题是一道DFS+剪枝的经典例题,详情请看代码注释,里面按照我个人的理解进行了详细的解释...
  • tick_tock97
  • tick_tock97
  • 2017年05月03日 10:10
  • 168

POJ - 1190 生日蛋糕(dfs+剪枝)

7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。  设从下往上数第i(1 Ri+1且Hi > Hi+1。  由于要在蛋糕上抹奶油,为尽可能节...
  • SunMoonVocano
  • SunMoonVocano
  • 2017年07月29日 21:37
  • 97

poj 1190 dfs+剪枝(生日蛋糕)

题意:中文题。要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 Ri+1且Hi > Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下...
  • dumeichen
  • dumeichen
  • 2015年04月06日 12:01
  • 276

POJ 2676Sudoku(Dfs+搜索剪枝)

Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 18995   Accepted: 9143   ...
  • jklcl
  • jklcl
  • 2016年11月28日 21:02
  • 61
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 2907 Collecting Beepers DFS+回溯+剪枝
举报原因:
原因补充:

(最多只允许输入30个字)