hdu-1046Gridland
来源:互联网 发布:java 反编译 编辑:程序博客网 时间:2024/04/28 16:56
图论规律(关于哈密尔顿图)
Gridland
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3283 Accepted Submission(s): 1520
Problem Description
For years, computer scientists have been trying to find efficient solutions to different computing problems. For some of them efficient algorithms are already available, these are the “easy” problems like sorting, evaluating a polynomial or finding the shortest path in a graph. For the “hard” ones only exponential-time algorithms are known. The traveling-salesman problem belongs to this latter group. Given a set of N towns and roads between these towns, the problem is to compute the shortest path allowing a salesman to visit each of the towns once and only once and return to the starting point.
The president of Gridland has hired you to design a program that calculates the length of the shortest traveling-salesman tour for the towns in the country. In Gridland, there is one town at each of the points of a rectangular grid. Roads run from every town in the directions North, Northwest, West, Southwest, South, Southeast, East, and Northeast, provided that there is a neighbouring town in that direction. The distance between neighbouring towns in directions North–South or East–West is 1 unit. The length of the roads is measured by the Euclidean distance. For example, Figure 7 shows 2 × 3-Gridland, i.e., a rectangular grid of dimensions 2 by 3. In 2 × 3-Gridland, the shortest tour has length 6.
The president of Gridland has hired you to design a program that calculates the length of the shortest traveling-salesman tour for the towns in the country. In Gridland, there is one town at each of the points of a rectangular grid. Roads run from every town in the directions North, Northwest, West, Southwest, South, Southeast, East, and Northeast, provided that there is a neighbouring town in that direction. The distance between neighbouring towns in directions North–South or East–West is 1 unit. The length of the roads is measured by the Euclidean distance. For example, Figure 7 shows 2 × 3-Gridland, i.e., a rectangular grid of dimensions 2 by 3. In 2 × 3-Gridland, the shortest tour has length 6.
Input
The first line contains the number of scenarios.
For each scenario, the grid dimensions m and n will be given as two integer numbers in a single line, separated by a single blank, satisfying 1 < m < 50 and 1 < n < 50.
For each scenario, the grid dimensions m and n will be given as two integer 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 at 1. In the next line, print the length of the shortest traveling-salesman tour rounded to two decimal digits. The output for every scenario ends with a blank line.
Sample Input
22 22 3
Sample Output
Scenario #1:4.00Scenario #2:6.00
解题思路:关于哈密尔顿回路有一个小规律,那就是当n.m至少有一个是偶数时,最短路径就是n*m。否则就是n*m-1+sqrt(2)。
#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>using namespace std;int main(){ int t,n,m,i; scanf("%d",&t); for(i=1;i<=t;i++) { scanf("%d%d",&n,&m); if((n%2==0)||(m%2==0)) printf("Scenario #%d:\n%d.00\n\n",i,n*m); else printf("Scenario #%d:\n%.2lf\n\n",i,n*m-1+sqrt(2.0)); } return 0;}
- HDU 1046 Gridland
- hdu 1046 Gridland
- hdu-1046Gridland
- HDU 1046 Gridland
- hdu 1046 Gridland
- HDU 1046 Gridland
- hdu 1046 Gridland(规律题)
- HDU—— 1046 Gridland
- ZOJ 1037 && HDU 1046 Gridland (找规律)
- HDU ACM 1046 Gridland 找规律
- HDU:1046.Gridland
- POJ 1450 && HDU 1046 Gridland(计算几何)
- HDU 1046 & POJ 1450 Gridland【有趣的数学题】
- HDOJ 1046 gridland
- Gridland
- Gridland
- Gridland
- Gridland
- 没事儿找事儿————gtk学习(gtk安装)
- ERP实施顾问如何巧妙向客户说“不”
- oracle存储过程基本语法
- 手动释放Linux内存命令及解释
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- hdu-1046Gridland
- 11个Linux基础面试问题
- C#后台注册脚本
- 使用类模板和特化实现1到N的快速求和
- git rebase
- hibernate 一些异常
- PHP-Zend引擎剖析之Hello World(二)
- sql语句经典面试题及答案
- vs2010中创建DLL文件,并在另外一个工程中使用测试或使用它