题目描述
二货小易有一个 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)
输出描述:
输出一个最多可以放的蛋糕数
示例 1
输入
3 2
输出
- 4
- import java.util.Scanner;
- /**
- *
- * 不要二
- * 所谓的欧几里得距离 就二十 坐标平方和 开方不为二
- * 只有 x 差为 2 y 差为零
- * 或 x 差为零 y 差为二
- * 才能使得 距离为二
- * @author Dell
- *
- */
- public class Main {
- static public int n ;
- static public int m ;
- static public int a[][];
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- n = sc.nextInt();
- m = sc.nextInt();
- int res = 0;
- if(n%4==0||m%4==0){res=m*n/2;}// 如果能整除 4 那么蛋糕个数为网格个数的一半
- else{ res=n*m/2+1;}// 不能被 4 整除 将蛋糕每隔一个空放一个 可以放多少 奇数的一半 + 1
- System.out.println(res);
- }}
来源: http://www.bubuko.com/infodetail-2583932.html