第三题的一点思路,考试的时候想到用滑动窗口解了,愣是没滑出来,最后写了个暴搜只能过30% 考完就想明白咋写了😭 n, k = [int(i) for i in input().split()] arr = [int(i) for i in input().split()] strs = input() def getm(num,m): res = 0 while True: if num//m == num/m: res+=1 num//=m else: break return res res = float('inf') l = 0 rcnt2 = 0 rcnt5 = 0 bcnt2 = 0 bcnt5 = 0 for r in range(len(strs)): if strs[r] == 'R': rcnt2 += getm(arr[r],2) rcnt5 += getm(arr[r],5) else: bcnt2 += getm(arr[r], 2) bcnt5 += getm(arr[r], 5) while min(rcnt2,rcnt5) + min(bcnt2,bcnt5) >= k: tmp2 = getm(arr[l],2) tmp5 = getm(arr[l],5) if strs[l] == "R": rcnt2-=tmp2 rcnt5-=tmp5 else: bcnt2-=tmp2 bcnt5-=tmp5 res = min(res,r-l+1) l+=1 print(res)
点赞 评论

相关推荐

点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务