AT_tkppc3_h.新入生歓迎数列 - Hard
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
配点:1000 分
パ研的新生 PAKEN 君从 E869120 那里得到了一个长度为 N 的数列 P={P1,P2,P3,…,PN}。最开始,P 的所有元素均为 0。
PAKEN 君打算通过对数列 P 进行如下操作,操作顺序任意,总共不超过 550000 次,将该数列变为 A={A1,A2,A3,…,AN}。
- 操作 1:选择一个 1 到 N 之间的整数 x,将 Px 的值变为 1。
- 操作 2:选择 1 到 N 之间的整数 y,z,将 Pz 的值加到 Py 上。此时 y 可以等于 z。此外,Py 的值不能超过 1018。
PAKEN 君还很年幼,不知道该如何操作。为了帮助他,你需要给出一种操作方案的示例。
输入格式
输入从标准输入读入,格式如下:
N A1 A2 A3 ... AN
输出格式
输出到标准输出,格式如下:
Q
(第 1 次操作的信息)
(第 2 次操作的信息)
...
(第 Q 次操作的信息)
首先输出操作次数 Q。**Q 必须是 0 到 550000 之间的整数。**接下来的 Q 行,每行描述一次操作,格式如下:
(☆)执行操作 1 时:
1 x
表示将 Px 设为 1。
(★)执行操作 2 时:
2 y z
表示将 Pz 的值加到 Py 上。
输入输出样例
输入#1
2 1 4
输出#1
4 1 1 1 2 2 2 2 2 2 2
输入#2
3 1 3 5
输出#2
8 1 1 2 1 1 2 3 1 1 1 2 1 2 2 2 1 2 3 1 1 1
说明/提示
限制条件
- N 是 2 到 200000 之间的整数。
- A1=1。
- Ai(1≤i≤N)是 1 到 230−1 之间的整数。
子任务
子任务 1 [60 分]
- 满足 N=2。
子任务 2 [140 分]
- 满足 N≤8000。
子任务 3 [80 分]
- 满足 N≤16000。
子任务 4 [230 分]
- 满足 N≤25000。
子任务 5 [270 分]
- 满足 N≤160000。
子任务 6 [220 分]
- 无额外限制。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?