【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';
        }
    }
}
posted @ 2025-08-19 21:45  arin876  阅读(38)  评论(0)    收藏  举报