分析:给出一个矩阵。问最短从一个点经过全部点以此回到起点的长度是多少。绘图非常好理解。先画3*4、3*3、4*4的点阵图案。试着在上面用最短路走一走,能够发现当矩形点阵的长宽都是奇数时,最短路中必然有一条斜线;而仅仅要长或宽有一个是偶数就能够通过直线来完毕最短路经。因此仅仅需推断一下两边的奇偶情况就能求最短路径了。
#include<iostream>
#include<cmath>
using namespace std; int main()
{
int T,t=0,m,n; cin>>T;
while(T--)
{
cin>>m>>n;
cout<<"Scenario #"<<++t<<":"<<endl;
if(m&1 && n&1) //两个都是奇数
printf("%.2lf\n\n",m*n-1.0+sqrt(2.0));
else
printf("%.2lf\n\n",(double)m*n);
}
return 0;
}