ZOJ 1048  Gridland(水水更健康!*…

来源:互联网 发布:天涯明月刀巅峰数据 编辑:程序博客网 时间:2024/05/21 07:02
Gridland

Time Limit: 2 Seconds    Memory Limit: 65536 KB

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.

ZOJ <wbr>1048 <wbr> <wbr>Gridland(水水更健康!*_*)
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写的,可是最后的时候不会怎么保留两位小数……
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 用身份证买的手机号变成空号怎么办 魔域口袋版背包幻兽满了怎么办? 魔域宝宝转世满了还不变雷怎么办 魔域口袋版家族试炼士气不足怎么办 聚水潭暂存位没有箱号怎么办? 长时间不锻炼运动后浑身酸痛怎么办 体脂称身体年龄比实际年龄大怎么办 分手两天我好难过好想去找他怎么办 宝宝一吃药就哭得很厉害怎么办 比你入职晚的同事比你厉害怎么办 nba篮球大师能力值满了怎么办 做什么都觉得很累没有兴趣怎么办 剧烈运动后头晕恶心想吐怎么办 剧烈运动完头晕恶心想吐怎么办 小孩头部摔到地上想吐头晕怎么办 肺部化疗恶心反胃怎么办吃什么药好 好久没运动一运动全身酸痛怎么办 怀孕两个月了一直吐没体力怎么办 公务员审查六级口语证丢了怎么办 农资经营如果被执法查处了怎么办? 干隧道测量坚持不下去该怎么办 老家房子强拆没钱做没钱补怎么办? 魔兽世界出了两个一样的传说怎么办 死亡事故后遇上不讲理家属怎么办 死亡事故后死亡者家属不讲理怎么办 住的地方治安乱混混多怎么办 使命召唤进去感觉动作好慢怎么办 40岁后不够硬不持久怎么办 如果别人毁灭了你的梦想怎么办 如果死者托梦说自己过的不好怎么办 吵架了老婆跑回娘家不回家了怎么办 和老婆吵架她跑回娘家了怎么办 鞋子里面的皮穿的都是泥怎么办 绝地求生手游模拟器键位不灵怎么办 我更新目录的时候目录不存在怎么办 如果别人欠我钱不还 我该怎么办 老婆欠信用卡的钱我该怎么办 我欠了很多钱我该怎么办 一个人欠我钱跑了我该怎么办 买房子时间长了成危楼了怎么办 别人欠我钱人找不到了怎么办