题目背景
翻译来自于 LibreOJ。
题目描述
题目译自 XXV Olimpiada Informatyczna — II etap Przekaźniki telekomunikacyjne
国王 Bajtazar 顺应时代潮流,决定为拜托尼亚王国铺设移动电话网络,覆盖所有村庄和城市。这些地点分布在一条笔直的道路上,可视为数轴。
新任命的电信顾问需要一个程序,测试中继站天线杆的位置。每根天线杆顶端装有中继站,由参数 s 和 a 描述。在杆位置 x,信号强度为 s;在其他点,信号强度随距离线性下降,即在点 x±d,强度为 max(0,s−a⋅d)。
道路上某点的信号覆盖强度为所有中继站信号强度的总和。
程序需支持添加或移除天线杆,以及查询某段整数点平均信号覆盖强度的操作。
输入格式
第一行包含两个整数 n,m (n≥2,m≥1),分别表示道路长度和操作数量。
接下来的 m 行描述操作,每行以单个字符开头,表示操作类型,后跟一至三个整数:
- P x s a:在点 x 架设天线杆,安装中继站,参数为 s,a (1≤x≤n,1≤s,a≤100000)。
- U x:移除点 x (1≤x≤n) 的天线杆。
- Z x1 x2:查询区间 [x1,x2] 内所有整数点 x (x1≤x≤x2,1≤x1≤x2≤n) 的平均信号覆盖强度。
各行数据以单空格分隔。保证操作 P 时点 x 无天线杆,操作 U 时点 x 有天线杆。
输出格式
输出与输入中 Z 操作数量相同的行,每行包含一个整数,表示对应查询的平均信号覆盖强度,向下取整。
11 7
P 5 30 10
Z 6 7
P 10 22 5
Z 6 7
Z 6 6
U 5
Z 6 6
15
19
22
2
提示
样例 1 解释
操作 |
结果 |
说明 |
P 5 30 10 |
- |
在点 x=5 架设天线杆,中继站参数 s=30,a=10。 |
Z 6 7 |
15 |
点 6 信号强度为 30−10=20,点 7 为 30−2⋅10=10,区间 [6,7] 整数点的平均强度为 (20+10)/2=15。 |
P 10 22 5 |
- |
在点 x=10 架设天线杆,中继站参数 s=22,a=5。 |
Z 6 7 |
19 |
两杆存在,点 6 强度为 20+2=22,点 7 为 10+7=17,平均强度为 (22+17)/2=19.5,向下取整为 19。 |
Z 6 6 |
22 |
点 6 强度为 22,平均为 22。 |
U 5 |
- |
移除点 x=5 的天线杆。 |
Z 6 6 |
2 |
点 6 强度为 2(仅剩 x=10 的中继站)。 |
附加样例
- n=101,m=500,道路首尾中各一杆,随机查询。
- n=300000,点 1 有一杆,s=100000,a=100,查询各前缀 [1,i] 的平均强度,1≤i≤300000。
- n=300000,m=500000,每点有杆,s=1000,a=1,查询整条路的平均强度。
详细子任务附加限制及分值如下表所示。
子任务 |
附加限制 |
分值 |
1 |
n,m≤2000 |
8 |
2 |
n≤300000,m≤500000,Z 操作在所有 P、U 操作后 |
24 |
3 |
n≤300000,m≤500000,同时最多 50 个中继站 |
16 |
4 |
n≤300000,m≤500000,Z 操作总有 x1=x2 |
15 |
5 |
n,m≤100000 |
6 |
n≤300000,m≤500000,P 操作总有 a=1 |
12 |
7 |
n≤300000,m≤500000 |
10 |