py3零分求指导

P1047 [NOIP2005 普及组] 校门外的树

@[Kaarim](/user/328233) 读题: > 第一行有 $ 2 $ 个整数 $ L $ 和 $ M $,$ L $ 代表马路的长度,**$ M $ 代表区域的数目**,$ L $ 和 $ M $ 之间用一个空格隔开。 > **接下来的 $ M $ 行**每行包含 $ 2 $ 个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
by ud2_ @ 2020-03-12 07:45:48


@[sjx233_](/user/206953) ```python def move(road): _list = list(range(int(road[0]), int(road[1])+1)) for i in _list: if i in tree: tree.remove(i) temp = input().split(' ') tree = list(range(int(temp[0])+1)) for i in range(int(temp[1])): move(input().split(' ')) print(len(tree)) ``` 还是不行
by Kaarim @ 2020-03-13 01:12:41


@[Kaarim](/user/328233) 算法太慢,想想怎么优化(`move` 是 O(n²) 的,可以优化到 O(n))
by ud2_ @ 2020-03-13 07:43:01


```python lst1 = input().split() lst2 = [int(i) for i in lst1] n,m = lst2 sum = 0 lst3 = list() for i in range(m): t = [int(x) for x in input().split()] lst3.append(t) for j in range(n+1): for k in lst3: if k[0]<=j<=k[1]: break else: sum += 1 print(sum) ```
by 扯淡7766 @ 2020-12-22 19:36:43


我这个可以, 思路:将几个区间记录起来,然后用循环判断是否在区间内, but我觉得应该有这方面的小算法优化,所以有会的大佬请评论指点!
by 扯淡7766 @ 2020-12-22 19:39:29


|