分析:给出一个矩阵,问最短从一个点经过所有点以此回到起点的长度是多少。画图很好理解,先画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; }
时间: 2024-11-05 22:47:42