酷代码 AI
菜单

本庭院里有一排树,一共有n(n<100)棵。机器人们一共把m个区域的树木都摧毁了。每个区域都包含了连续的几棵树木,其中第i个区域包含的树木为从Li开始到Ri为止之间的所有的树木。当然了,这些区域有可能会重合,但是每棵树只会被摧毁一次。请你计算一下最终还剩下几棵完好无损的树木? 输入: 第一行两个数n和m代表树的总数和区域数。 接下来m行,每行两个数Li和Ri,表示每个区域的范围

以下是Python代码实现该功能: ```python # 读取输入的树的总数n和区域数m n, m = map(int, input().split()) # 初始化一个长度为n的列表,用于标记每棵树是否被摧毁,初始值都为False,表示未被摧毁 destroyed = [False] * n # 循环m次,处理每个区域 for _ in range(m): # 读取每个区域的起始位置Li和结束位置Ri Li, Ri = map(int, input().split()) # 注意索引从0开始,将区域内的树标记为已摧毁 for i in range(Li - 1, Ri): destroyed[i] = True # 计算未被摧毁的树的数量 remaining_trees = destroyed.count(False) # 输出结果 print(remaining_trees) ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 注意数组索引是从0开始的,而输入的树的编号是从1开始,所以在标记摧毁区域时需要将编号减1。 2. 对于输入数据范围,要确保满足题目给定的约束条件,如`n < 100`。 3. 当计算剩余树的数量时,要避免重复计算已经标记为摧毁的树。 [2026-01-24 19:19:53 | AI写代码神器 | 302点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多