二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。

输入描述:
每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)

输出描述:
输出一个最多可以放的蛋糕数

输入例子:
3 2

输出例子:
4

 

1 4 收藏


直接登录
最新评论
  • 医图 学生 2016/08/15

     

    • 王先生 学生 2016/08/15

      明显错了啊 按行列来删除并不能保证最大,举个例子

      1 1 x x 1 1
      1 1 x x 1 1
      x x 1 1 x x
      x x 1 1 x x

    • 王先生 学生 2016/08/15

      写了个python版本的,然后分情况进行讨论

       

  • paine1690 学生 2016/08/15

    public static int getMax(int m, int n){
    int a=1, b=0;
    a=(n/4)*2*(a+b)+Math.max(2, (n%4))*a+((n%4)-Math.max(2, (n%4)))*b;
    b=n-a;
    return (n/4)*2*(a+b)+Math.max(2, (n%4))*a+((n%4)-Math.max(2, (n%4)))*b;

    }

  •  

  • susnm   2016/08/16

     

  • lin2724   2016/08/17

  • 发现自己刚发表的程序有误,已修改

     

  • 袖破   2016/08/18

    真的只要求和就可以算出来不用剔除hhh