文章

5

粉丝

495

获赞

2

访问

46.3k

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

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

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

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

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

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发