Python3求调,30分
查看原帖
Python3求调,30分
1227790
MC_xjhjdA楼主2025/1/15 16:50

测评记录

n,k=map(int,input().split())
s=input()
def ch(g):
    c0=c1=0
    ck=1
    for gx in range(n):
        if s[gx]=='1':
            c1+=1
        else:
            c0+=1
        if c0*c1>g:
            ck+=1
            c0=c1=0
            if s[gx]=='1':
                c1+=1
            else:
                c0+=1
    return ck<=k
l,r=0,int(1e12) #当n=10**6时一半是1一半是0
while l<r:
    mid=(l+r)>>2
    if ch(mid):
        r=mid
    else:
        l=mid+1
print(r)
2025/1/15 16:50
加载中...