文章

5

粉丝

495

获赞

1

访问

45.2k

头像
P1458-火车票订购(Python实现)
P1458 中国科学技术大学机试题
发布于2021年3月10日 20:34
阅读数 7.4k

其他高级的算法我也不会写,故直接对问题进行模拟:先开一个容量为100的列表表示一共1-99站,每个站初值为额定人数m。

对于每个[a,b]区间上的购票请求,则直接遍历下标为a,b的列表(若列表容量不够再扩容),看use[j]剩余数是否>=k;

当[a,b]区间上每个站点的人数都大于等于k时表示这个购票请求满足,输出1,然后更新人数数据。

n, m = map(int, input().split())
use = [m for i in range(100)]
for i in range(n):
    a, b, k = map(int, input().split())
    if b > len(use):  # 当前列表容量达不到站的数量,扩容
        use += [m for i in range(b - len(use) + 5)]
    flag = 1
    for j in range(a, b + 1):
        if use[j] < k:
            flag = 0
            print(0)
            break
    if flag == 1:  # 此次购票请求各个站点都能满足
        for j in range(a, b + 1):
            use[j] -= k  # 更新票数
        print(1)

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发