旅行商问题,但本题可以通过观察得出公式求解,若两边都为奇数时需要斜向边,否则不需要,路线的话在纸上画一画就差不多知道了
#include<stdio.h>
#include<math.h>
int main()
{
int t, T;
scanf("%d", &T);
double d = sqrt(2) - 1;
for (t = 1; t <= T; t++)
{
printf("Scenario #%d:\n", t);
int m, n;
scanf("%d%d", &m, &n);
if ((m % 2) && (n % 2))
printf("%.2lf\n", m * n + d);
else
printf("%d.00\n", m * n);
puts("");
}
return 0;
}