/*题意:将一个矩形划分成单位矩形。问从一个点出发,
经过所有单位矩形的顶点1次后,回到起点的最短路径的长度是多少。
思路:用个专业点的说法,题目求的是哈密顿回路的最短长度。
好吧,其实是数学推断题。首先可以得出的是,矩形的长宽是可以调转的,
这并不影响最后结果。考虑一条S型的路线,从左上角的顶点出发,
走一条S型的路线以最短距离走完最多的顶点,
。长为奇数与偶数时,最短路径的走法如图所示。
由此推断,两种走法都是与宽的奇偶性无关的。
第一种情况,路径长度就是长宽之积;第二种情况,
走到最后一个格的长度是长宽之积-1,再加上最后一个格到终点的距离,
sqrt(2)。对比两种情况的路径长度可知,当长宽为一奇一偶时,
应按照第一种情况计算。
*/
#include<stdio.h>
int t,m,n,s,i;
int main()
{
scanf("%d",&t);
while(t)
{
t--;
scanf("%d%d",&m,&n);
printf("Scenario #%d:\n",++i);
s=m*n;
if(s%2==0) printf("%d.00\n\n",s);
else printf("%d.41\n\n",s);//根号2约为1.41
}
return 0;
}
北大ACM poj1450
最新推荐文章于 2018-08-14 14:49:47 发布