//这一题比较简单,主要是想得明白其中的走法就容易解决了!分两种情况!
#include "iostream"
#include "cmath"
using namespace std;
const double a = sqrt(double (2));
int main()
{
int TestCase, casecount = 0;
cin >> TestCase;
while (TestCase--)
{
int m, n;
double length = 0.0;
cin >> m >> n;
casecount++;
if (m % 2 != 0 && n % 2 != 0)//当两个数都为奇数的时候,最后的一步为斜线走法,所以总长度-1之后再加2的开方就可以了!
{
length = (m * n - 1) + a;
}
else//当两个数不同时为奇数的时候,长度就为m*n!
{
length = m * n;
}
cout.setf(ios_base::fixed);
cout.setf(ios_base::showpoint);
cout.precision(2);
cout << "Scenario #" << casecount << ":" << endl << length << endl;
cout << endl;
}
}
zoj 1037 gridland
最新推荐文章于 2024-11-12 11:00:33 发布