【MX-X15】梦熊 X 组 · 风筝赛 & GMXOI Round 1(同步赛)
P13556 【MX-X15-T3】画圈圈
太赤石了
\(k=2\)时,比较典的是白色方格和黑色方格的数量是\(\lfloor \frac{mn}{2} \rfloor\)和\(\lceil \frac{mn}{2} \rceil\)
连通块的个数=白色格子的个数=\(\lfloor \frac{mn}{2} \rfloor\)固定白色方格的个数,面积就固定了,面积固定,周长最小是两者相近的时候,即\(w=\lfloor \frac{mn}{2} \rfloor\) \(h=\lceil \frac{mn}{2} \rceil\)
二分周长,检查当前周长的最大面积
\(k>=3\)时,特判L=1,其余是样例极力引导的周长相同
#include<bits/stdc++.h>
using namespace std;
#define int long long
int k,L;
bool check(int x){
// cout<<"check"<<x<<'\n';
int w=x/2;int h=(x+1)/2;
return w*h/2>=L;
}
signed main(){
std::ios::sync_with_stdio(false);
int T;cin>>T;
while(T--){
cin>>k>>L;
if(k==2ll){
int l=2;int r=1e5;
while(l<r){
int mid=(l+r)>>1;
if(check(mid))r=mid;
else l=mid+1;
}
cout<<l<<'\n';
}
else {
if(L==1ll)cout<<2<<'\n';
else
cout<<2+(L-1)*k-1<<'\n';
}
}
}

浙公网安备 33010602011771号