Goodland Electricity

思路:很直观的一个想法是TreeSet来greedy search,每次找当前plant最远能放到的位置 ,Python没有TreeSet,所以用二分

注意一下起始位置和结束位置

import bisect

# Complete the pylons function below.
def pylons(k, arr):
    a = [i for i in range(len(arr)) if arr[i]]
    a.sort()
    i=k-1
    s=set()
    while 1:
        idx=bisect.bisect_right(a, i)
        if idx==0: return -1
        if a[idx-1] in s: return -1
        s.add(a[idx-1])
        if a[idx-1]+k-1>=len(arr)-1: break
        i=a[idx-1]+k-1+k
    return len(s)

if __name__ == '__main__':
    nk = input().split()
    n = int(nk[0])
    k = int(nk[1])
    arr = list(map(int, input().rstrip().split()))
    result = pylons(k, arr)
    print(result)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值