HLG2157【找规律】
吃豆豆 | ||||||
|
||||||
Description | ||||||
一天Woods和他的GrilFriend(GF)来到了一个童话王国的小镇里,镇上有许多豆豆(如下图中的每个圆形为一个豆豆),每个豆豆有通向东,南,西,北,东南,东北,西北,西南八个方向的道路。其中直线道路的距离为1米,斜线道路的距离为根号2米。GF一看见吃的就饿了……你能算出吃且只吃所有豆豆一次,最后回到起点的最短路程吗?
如图所示为一个2 x 3的图,最短距离(如红线所示)为6米。 |
||||||
Input | ||||||
多组测试数据。每组测试数据一行,包括两个整数N,M(1 < m < 50 and 1 < n < 50.),代表图的大小为N行M列。 |
||||||
Output | ||||||
对于每组数据输出一行,输出吃且只吃所有豆豆一次,最后回到起点的最短路程。(精确到两位小数)。 |
||||||
Sample Input | ||||||
2 2 2 3 |
||||||
Sample Output | ||||||
4.00 6.00 |
||||||
Hint | ||||||
|
||||||
Source | ||||||
2014暑假集训练习赛(8月13日) |
分析:找规律
代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 using namespace std; 5 6 int main() { 7 int a, b; 8 while(EOF != scanf("%d %d",&a, &b) ) { 9 double ans = a * b + 1e-9; 10 if(a % 2 == 1 && b % 2 == 1) ans += sqrt(2) - 1.0; 11 printf("%.2lf\n",ans); 12 } 13 return 0; 14 }