1 条题解
- 
  1
二分边长即可。
因为黑白相间,边长为偶数时黑白数相同,边长为奇数时两者相差 。检查一下较少的方块是否满足条件即可。
#include<bits/stdc++.h> using namespace std; int b, w, ans; bool check(int x){ if(b > w) swap(b, w); return b > x * x / 2 - (x * x % 2); } int main(){ scanf("%d%d", &b, &w); int l = 0, r = 200;//200不可能达到了,因为要40000块,一共才20000块 while(l <= r){ int mid = (l + r) >> 1; if(check(mid)) ans = mid, l = mid + 1; else r = mid - 1; } if(!ans) printf("Impossible\n"); else printf("%d\n", ans); return 0; } 
信息
- ID
 - 2808
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 7
 - 标签
 - 递交数
 - 75
 - 已通过
 - 16
 - 上传者