这题一改HDU往日的风格竟然在最后一个输出后边加了空行,让我PE了一次,找规律就可以了,基本画九个就找到了,也可以这样想,一共有m*n个点,最短路径一定是从一个点出发,不重复地走完所有点,在走到最后一个点时,如果是内部的点时奇数个,那么只能走一次对角线,那么此时就可以少走一条边,如果是偶数个,那么直接走一次边就回来了,代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
double p=sqrt(2.0),path;
int m,n,t;
scanf("%d",&t);
for(int i=1;i<=t;i++){
scanf("%d%d",&m,&n);
printf("Scenario #%d:\n",i);
path=m*n;
if((int)(path)%2==0) printf("%.2lf\n",path);
else printf("%.2f\n",path-1+p);
printf("\n");
}
return 0;
}