题目:http://acm.hdu.edu.cn/showproblem.php?pid=1046
难点在于读懂题意
题意:输入一个n*m的点阵,间距为1,问你遍历完所有点阵并回到起点的最短路径是多少。(对角线是1.41)
画图找规律:
规律:
当n,m不全为奇数的时候,最短路径就是n*m;
当n,m全为奇数的时候,必然要走一条斜线,就多走了0.41(即根号2),最短路径即为:n*m+0.41.
1 #include<stdio.h> 2 int main() 3 { 4 int N; 5 int m,n; 6 int i; 7 scanf("%d",&N); 8 for(i=1;i<=N;i++) 9 { 10 scanf("%d%d",&m,&n); 11 printf("Scenario #%d: ",i); 12 if((m*n)%2==0) 13 { 14 printf("%d.00 ",m*n); 15 } 16 else 17 { 18 printf("%d.41 ",m*n); 19 } 20 printf(" "); 21 22 } 23 return 0; 24 }