loj#P3695. 「JOISC 2022 Day4」鱼 2
「JOISC 2022 Day4」鱼 2
题目描述
题目译自 JOISC 2022 Day4 T2 「魚 2 / Fish 2」。
JOI 君有 条鱼,编号为 。第 条鱼的大小为 。
当我们养鱼的时候,需要注意如下的一个事实:如果有两条鱼离得很近,那么随着时间的流逝,可能会有其中一条吃掉另一条。其中,两条鱼离得很近,当且仅当它们中间没有鱼。
更具体地,如果鱼 的大小不小于鱼 的大小,且鱼 离得很近,那么 可以吃掉 ,且 的大小变为原来 的大小之和。如果 一样大,那么 吃掉 或 吃掉 都可能发生。
JOI 君会养 天鱼。为了消磨时光,他会进行如下的思想实验。在第 天 ,JOI 君会进行如下行动中的一个:
-
第一类:JOI 君给鱼 吃了某些秘制的食物。这会将鱼 的大小变为 。
-
第二类:JOI 君将编号在区间 内的鱼单独拿出来,并进行以下实验:
JOI 君将鱼 从左到右依次放在一个鱼缸中。由于鱼们具有如上所述的特点,最后只有一条鱼会存活。存活的这条鱼的编号取决于在哪些时刻哪些鱼吃掉了哪些鱼。JOI 君想知道可能成为最后存活者的鱼的条数。在实验中,鱼的编号不会改变,也不能有两条鱼同时吃掉同一条鱼。
请写一个程序,对于给定的 JOI 君的鱼和实验的信息,计算每个第二类行动的答案来让 JOI 君能够证明或证伪自己的观点。注意这只是思想实验,并没有任何鱼真的被吃掉。
输入格式
第一行,一个正整数 ,表示鱼的条数。
第二行, 个正整数 ,表示每条鱼的大小。
第三行,一个正整数 ,表示养鱼的天数。
接下来 行,其中第 行包含若干个由空格分隔的整数,其中第一个整数为 ,表示操作类型。
- 若 ,则该行还包含两个正整数 ,表示 JOI 君第 天进行了第一类行动。鱼 的大小变为 。
- 若 ,则该行还包含两个正整数 ,表示 JOI 君第 天进行了第二类行动。JOI 君对编号在 内的鱼进行了一次实验。
输出格式
对于每次第二类行动(即,对于每个满足 的 ),输出一行一个整数,表示可能成为最后存活者的鱼的条数。
5
6 4 2 2 6
6
2 1 5
2 1 3
1 3 1
2 2 5
2 1 5
2 2 4
5
2
2
3
1
13
10 4 2 5 20 5 4 8 20 10 3 3 7
1
2 1 13
7
12
32 32 4 1 1 1 1 4 4 16 32 128
7
2 1 12
2 2 6
2 8 10
2 1 9
2 3 8
2 5 9
2 2 12
12
1
1
2
6
2
1
10
2 3 5 10 1 3 4 9 5 2
8
2 1 10
1 10 5
2 1 10
1 4 1000000000
2 1 10
1 8 20
1 4 8
2 1 10
4
6
1
6
数据范围与提示
对于所有数据,满足:
- 。
- 。
- 。
- 。
- 。
- 。
详细子任务附加限制及分值如下表所示:
子任务编号 | 附加限制 | 分值 |
---|---|---|
, | ||
,,, | ||
对于每个满足 的 ,满足 , | ||
无附加限制 |