ZOJ1037 题目大意就是 计算在这个国家中所有城市的旅行售货员问题的最短长度,每个城市位于矩形网格的点上,方向有八个,单位长度为1

Problem

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.


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



2
2 2
2 3


Sample Output



Scenario #1:
4.00

Scenario #2:
6.00


分析:若m,n有一个为偶数,最短长度就是m*n,若m,n均为奇数,最短长度就是m*n+0.41.***竟然还犯加上根号二 

忘记减一的错误

代码如下:

#include<stdio.h>




int main()
{
    int m,n;
    int i;
    double ans;
    int T;
    scanf("%d",&T);
    i=1;
    while(T--)
    {




    scanf("%d%d",&m,&n);
    printf("Scenario #%d:\n",i);//一定要注意格式 因为没加空格错了好几次 T^T  下次复制就好


    if(m%2==0||n%2==0)
        ans=m*n;
    else if(m%2==1&&n%2==1)
        ans=m*n+0.41;


    printf("%.2lf\n\n",ans);
    i++;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值