做网站刷点击,学习做网站多久,花溪网站建设,网站设计尺寸规范# [NOIP2005 普及组] 校门外的树
## 题目描述
某校大门外长度为 l 的马路上有一排树#xff0c;每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴#xff0c;马路的一端在数轴 0 的位置#xff0c;另一端在 l的位置#xff1b;数轴上的每个整数点#xf…# [NOIP2005 普及组] 校门外的树
## 题目描述
某校大门外长度为 l 的马路上有一排树每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴马路的一端在数轴 0 的位置另一端在 l的位置数轴上的每个整数点即0,1,2,...,l都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数区域之间可能有重合的部分。现在要把这些区域中的树包括区域端点处的两棵树移走。你的任务是计算将这些树都移走后马路上还有多少棵树。
## 输入格式
第一行有两个整数分别表示马路的长度 l 和区域的数目 m。
接下来 m 行每行两个整数 u, v表示一个区域的起始点和终止点的坐标。
## 输出格式
输出一行一个整数表示将这些树都移走后马路上剩余的树木数量。
## 样例 #1
### 样例输入 #1 500 3 150 300 100 200 470 471
### 样例输出 #1 298
## 提示
**【数据范围】**
对于 20% 的数据保证区域之间没有重合的部分。对于 100% 的数据保证 1≤l≤1041≤m≤1000≤u≤v≤l。
**【题目来源】**
NOIP 2005 普及组第二题
n,mmap(int, input().split())
ar[1 for x in range(n1)] #生成0~n个共计n1棵树
for i in range(m):a,bmap(int,input().split())for j in range(a,b1):ar[j]0 #范围内挖掉的树置0若区间有重合也不过是重复置0
print(sum(ar)) 题目描述
在一条无限长的路上有一排无限长的路灯编号为 1,2,3,4,…1,2,3,4,…。
每一盏灯只有两种可能的状态开或者关。如果按一下某一盏灯的开关那么这盏灯的状态将发生改变。如果原来是开将变成关。如果原来是关将变成开。
在刚开始的时候所有的灯都是关的。小明每次可以进行如下的操作
指定两个数a,ta 为实数t 为正整数。将编号为 ⌊a⌋,⌊2×a⌋,⌊3×a⌋,…,⌊t×a⌋ 的灯的开关各按一次。其中 ⌊k⌋ 表示实数 k 的整数部分。
在小明进行了 n 次操作后小明突然发现这个时候只有一盏灯是开的小明很想知道这盏灯的编号可是这盏灯离小明太远了小明看不清编号是多少。
幸好小明还记得之前的 n 次操作。于是小明找到了你你能帮他计算出这盏开着的灯的编号吗
输入格式
第一行一个正整数 n表示 n 次操作。
接下来有 n 行每行两个数ai,ti。其中 ai 是实数小数点后一定有 6 位ti 是正整数。
输出格式
仅一个正整数那盏开着的灯的编号。
输入输出样例
输入 #1复制
3
1.618034 13
2.618034 7
1.000000 21
输出 #1复制
20
说明/提示
记 Ti1∑ntit1t2t3⋯tn。
对于 30% 的数据满足 T≤1000对于 80% 的数据满足 T≤200000对于 100% 的数据满足 T≤2000000对于 100% 的数据满足 n≤50001≤ai10001≤ti≤T。
数据保证在经过 n 次操作后有且只有一盏灯是开的不必判错。而且对于所有的 i 来说ti×ai 的最大值不超过 2000000。
nint(input())
arr[0 for i in range(2000000)] 开线段树 关灯状态为0开灯为1因为题目说了最后只有一盏灯亮那么
就找到那一盏灯的编号for i in range(n):a,tmap(float,input().split())for j in range(1,int(t)1):#原来亮现在暗if arr[int(j*a)]0:arr[int(j*a)]1#原来暗现在亮elif arr[int(j*a)]1:arr[int(j*a)]0
print(arr.index(1))