AT_1_stpc2025_1_m.Many Approaches
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个公园,里面有 N 个广场排成一排,每个广场从左到右依次编号为 0,1,…,N−1。
公园里有 N 个人,每个人的编号为 0,1,…,N−1。当你声明一个由 0 到 N−1 的非负整数构成的序列 X=(X1,X2,…,X∣X∣) 时,这些人会按照如下方式进行行进:
- 对于每个 i=0,1,…,N−1,第 i 号人会移动到编号为 i 的广场。
- 对于每个 j=1,2,…,∣X∣,依次执行以下操作:
- 所有不在广场 Xj 的人,会沿着广场向 Xj 的方向移动一个广场的距离。
给定一个长度为 M,每个元素都是 0 到 N−1 之间的非负整数的序列 A=(A0,A1,…,AM−1)。
请在线回答 Q 个查询。对于第 i 个查询(i=1,2,…,Q),给出整数 ti′,Li′,Ri′,Pi′。首先根据如下步骤还原 ti,Li,Ri,Pi:
- 令 ans0=0,ansi=(第 i 次查询的答案)。
- 按如下规则还原 ti,Li,Ri,Pi:
- ti=((ti′+ansi−1)mod2)
- a=((Li′+ansi−1)modM)
- b=((Ri′+ansi−1)modM)
- Li=min(a,b)
- Ri=max(a,b)
- Pi=((Pi′+ansi−1)modN)
这里对于非负整数 a 和正整数 b,有 (amodb) 表示 a 除以 b 的余数。这个值的取值范围为 0 到 b−1。
对于恢复得到的 ti,Li,Ri,Pi,请按如下方式回答每个查询:
- 若 ti=0:声明 X=(ALi,ALi+1,…,ARi) 并按照行进的规则执行,输出最终第 Pi 号人所在的广场编号。
- 若 ti=1:声明 X=(ALi,ALi+1,…,ARi) 并按照行进的规则执行,输出最终在编号为 Pi 的广场上的人数。
输入格式
输入格式如下:
N M Q
A0 A1 … AM−1
t1′ L1′ R1′ P1′
t2′ L2′ R2′ P2′
⋮
tQ′ LQ′ RQ′ PQ′
输出格式
输出共 Q 行。第 i 行输出第 i 条查询的答案 ansi。
输入输出样例
输入#1
4 5 3 0 2 3 2 1 0 1 3 2 1 0 2 1 1 4 4 1
输出#1
2 0 3
输入#2
7 4 1 3 3 3 3 1 3 0 3
输出#2
7
说明/提示
样例解释 1
对于第 1 条查询,有 (ti,Li,Ri,Pi)=(0,1,3,2)。声明 X=(A1,A2,A3)=(2,3,2) 并按照行进规则执行,第 2 号人会按广场 2→2→3→2 的顺序移动。因此答案为 2。
对于第 2 条查询,有 (ti,Li,Ri,Pi)=(1,2,4,3)。声明 X=(A2,A3,A4)=(3,2,1) 并按照行进规则执行,最终每个广场上的人数从 0 号到 3 号依次为 0,4,0,0。因此答案为 0。
对于第 3 条查询,有 (ti,Li,Ri,Pi)=(1,4,4,1)。声明 X=(A4)=(1) 并按照行进规则执行,最终每个广场上的人数从 0 号到 3 号依次为 0,3,1,0。因此答案为 3。
数据范围
- 所有输入均为整数
- 1≤N,M,Q≤2×105
- 0≤Ai≤N−1 (0≤i≤M−1)
- 0≤ti′,ti≤1 (1≤i≤Q)
- 0≤Li′,Ri′≤M−1 (1≤i≤Q)
- 0≤Li≤Ri≤M−1 (1≤i≤Q)
- 0≤Pi′,Pi≤N−1 (1≤i≤Q)
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?