6 条题解

  • 2
    @ 2024-5-29 19:42:19

    二分答案。

    def check(t):
      global clos
      global a
      global b
      res = 0
      for clo in clos:
        if (clo>t*a):
          res += (clo-t*a)//b + ((clo-t*a)%b!=0)
      # 计算每件衣服需要的烘干次数
      return res<=t # 给定的烘干次数是不是够用
    
    n,a,b = map(int, input().split())
    clos = []
    ppp = 0
    for _ in range(n):
      k = int(input())
      clos += [k]
      ppp = max(ppp, k)
    
    l=1
    r=ppp//a+3 
    
    # 二分答案
    while (l<r):
      mid = (l+r)>>1
      if (check(mid)):
        r = mid
      else :
        l = mid+1
    
    print(l)
    

    卡的很死,所以可能要两秒多,用class构了一下就过不了了。

    C++好像能乱过,没写。

    信息

    ID
    936
    时间
    3000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    576
    已通过
    38
    上传者