1 条题解
-
1蔡皓朗 (caihaolang) LV 5 @ 2022-9-2 22:34:16
二分边长即可。
因为黑白相间,边长为偶数时黑白数相同,边长为奇数时两者相差 。检查一下较少的方块是否满足条件即可。
#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; }
- 1
信息
- ID
- 2808
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 74
- 已通过
- 15
- 上传者