ZOJ 1048 Gridland(水水更健康!*…
来源:互联网 发布:天涯明月刀巅峰数据 编辑:程序博客网 时间:2024/05/21 07:02
Background
For years, computer scientists have been trying to find efficientsolutions to different computing problems. For some of themefficient algorithms are already available, these are the "easy"problems like sorting, evaluating a polynomial or finding theshortest path in a graph. For the "hard" ones only exponential-timealgorithms are known. The traveling-salesman problem belongs tothis latter group. Given a set of N towns and roads between thesetowns, the problem is to compute the shortest path allowing asalesman to visit each of the towns once and only once and returnto the starting point.
Problem
The president of Gridland has hired you to design a program thatcalculates the length of the shortest traveling-salesman tour forthe towns in the country. In Gridland, there is one town at each ofthe points of a rectangular grid. Roads run from every town in thedirections North, Northwest, West, Southwest, South, Southeast,East, and Northeast, provided that there is a neighbouring town inthat direction. The distance between neighbouring towns indirections North-South or East-West is 1 unit. The length of theroads is measured by the Euclidean distance. For example, Figure 7shows 2 * 3-Gridland, i.e., a rectangular grid of dimensions 2 by3. In 2 * 3-Gridland, the shortest tour has length 6.
Figure 7: A traveling-salesman tour in 2 * 3-Gridland.
Input
The first line contains the number of scenarios.
For each scenario, the grid dimensions m and n will be given as twointeger numbers in a single line, separated by a single blank,satisfying 1 < m < 50 and 1< n < 50.
Output
The output for each scenario begins with a line containing"Scenario #i:", where i is the number of the scenario starting at1. In the next line, print the length of the shortesttraveling-salesman tour rounded to two decimal digits. The outputfor every scenario ends with a blank line.
Sample Input
2
2 2
2 3
Sample Output
Scenario #1:
4.00
Scenario #2:
6.00
水题一枚,简单介绍一下题意:给你一个m*n的矩阵,矩阵上的相邻两点之间有直线相连,也可以通过对角线到达,要求找出最短可以转一圈遍历所有点回到原点的路径长度。
m和n都为奇数时,路径长度为m*n-1+2的开平方,有一个为偶数时路径长度为m*n。
代码:
#include<stdio.h>#include<math.h>int main(){ int Case,m,n,i; scanf("%d",&Case); for(i=1;i<=Case;i++) { scanf("%d%d",&m,&n); printf("Scenario #%d:\n",i); if(m%2!=0&&n%2!=0) printf("%.2lf\n",(m*n-1+sqrt(2))); else printf("%.2lf\n",(double)m*n); printf("\n"); } return 0;}
PS:本来想用Java写的,可是最后的时候不会怎么保留两位小数……
- ZOJ 1048 Gridland(水水更健康!*…
- ZOJ 1037 Gridland
- ZOJ 1048 Financial Management(…
- ZOJ 1060 (POJ 1094) Sorting It …
- ZOJ 1504(POJ 1244) Slots of Fun…
- ZZULI_SummerPractice(5) ZOJ 185…
- ZZULI_SummerPractice(5) ZOJ 194…
- ZZULI_SUMMER_PRACTICE(8) ZOJ 23…
- ZOJ 1041(POJ 1106) Transmitters(…
- ZOJ 1049 I Think&…
- 集线器 交换机 路由器 网桥 …
- ZOJ 2536 best balance
- ZOJ 3197 Goole Book
- ZOJ 1078 Palindrom Numbers
- ZOJ 1633 big string
- ZOJ 2239 In Danger
- ZOJ 1002 Fire Net
- ZOJ 1091 Knight Moves
- Spring注解@Component、@Repository、@Service、@Controller
- 交流与投票:本科毕业是先考…
- Android布局学习四:layout_weight 的使用
- ZOJ 1066(POJ 1099) Square Ice(…
- GNU ARM 汇编指令
- ZOJ 1048 Gridland(水水更健康!*…
- ZOJ 1048 Financial Management(…
- 百度招聘介绍(看来计算机之路任重…
- 最失败的面试经历 -- 哥就是…
- ACM大牛!!!!!!
- ZZULI 1595 Pills
- ZZULI 1596 Assign the task(暴力…
- 动态加载贴图和模型
- ZZULI 1597 Maze(果断DFS)