LOJ 1.5s AC,Luogu TLE
查看原帖
LOJ 1.5s AC,Luogu TLE
758679
phoenixzhan楼主2023/6/5 12:40

https://loj.ac/s/1789245

https://www.luogu.com.cn/record/112079905

n, k = input().split()
n, k = int(n), int(k)

if k == 1:
    if n == 1:
        print(1)
    else:
        print("Poor E.S.!")
elif k == 2:
    if n < 2:
        print("Poor E.S.!")
    else:
        print(pow(2, n - 2))
else:
    if n <= k:
        print(1)
    else:
        remain, width, height = 0, 2, n - k
        ans = 1
        while width * height + remain > 0:
            if remain > k:
                c = (remain - 2) // (k - 1)
                remain -= c * (k - 1)
                width += c
                ans += c
            m = width * height + remain - k
            height = (m - 1) // width
            remain = m - width * height + 1
            width += 1
            ans += 1
        print(ans)

求卡常 /ll

2023/6/5 12:40
加载中...