Hust oj 2157 吃豆豆

吃豆豆
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 153(89 users) Total Accepted: 82(74 users) Rating: Special Judge: No
Description

一天Woods和他的GrilFriendGF)来到了一个童话王国的小镇里,镇上有许多豆豆(如下图中的每个圆形为一个豆豆),每个豆豆有通向东,南,西,北,东南,东北,西北,西南八个方向的道路。其中直线道路的距离为1,斜线道路的距离为根号2GF一看见吃的就饿了……你能算出吃且只吃所有豆豆一次,最后回到起点的最短路程吗?

如图所示为一个2 x 3的图,最短距离(如红线所示)为6

Hust oj 2157 吃豆豆_第1张图片

Input

多组测试数据。每组测试数据一行,包括两个整数NM1 < m < 50 and 1 < n < 50.),代表图的大小为NM列。

Output

对于每组数据输出一行,输出吃且只吃所有豆豆一次,最后回到起点的最短路程。(精确到两位小数)。

Sample Input
2 2
2 3
Sample Output

4.00

6.00

画图找找规律就好咯,如果长或宽是偶数的话,直接沿着走就好了,所以是N*M,如果长和宽都是奇数的话,因为需要向中间走,需要从斜边走回去,所以就是N*M-1+1.414

#include
int main()
{

    int n,m;
    double a;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        if((n%2!=0)&&(m%2!=0))
        {
            a=(n*m-1)+1.41;
        }
        else
        {
            a=n*m;
        }
        printf("%.2f\n",a);
    }
}


 

你可能感兴趣的:(思维)