//hdu 1046 Gridland(规律题)
/*
题意:Gridland已聘请你来设计一个程序,
计算的长度最短旅行推销员的旅游城镇。
在Gridland,有一个小镇的每一个点的一个矩形网格。
道路运行方向的每个城镇北、西北、西部、西南部,南、东南、东、东北,
只要有一个邻近的小镇那个方向。
邻近的城镇之间的距离方向南——北或东——西是1单位。
解题:看是题目用搜索或者最短路径的算法,其实不然。
直接找规律就行了。
当n、/有一个偶数直接输出:m*n;
否则:n*m-1+sqrt(2.0)就行啦!
本以为这题会很难,没想到这样就解决了。
*/
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
double n,m;
int main()
{
int t;
scanf("%d",&t);
for(int it=1;it<=t;it++)
{
scanf("%lf%lf",&n,&m);
printf("Scenario #%d:\n",it);
if((int)m%2==0||(int)n%2==0)
{
printf("%.2lf\n",m*n);
}
else
{
printf("%.2lf\n",n*m-1+sqrt(2.0));
}
printf("\n");
}
return 0;
}
hdu 1046 Gridland(规律题)
最新推荐文章于 2022-10-08 20:24:33 发布