求大致难度以及做法
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T827753 [模拟赛 #1] 百鸟朝凤
题目描述
群鸟和鸣,百鸟来朝。为了迎接凤凰,山林中的鸟儿正在演练朝凤阵列。
山林中有 nnn 群鸟从左到右依次排列。我们用一个正整数序列 (v1,v2,…,vn)(v_1,v_2,\ldots,v_n)(v1 ,v2 ,…,vn ) 表示当前的鸟群排列,其中第 iii 个数 viv_ivi 表示从左到右第 iii 群鸟的数量。我们称这样的序列为一个鸟群序列。初始鸟群序列为 (v1,v2,…,vn)(v_1,v_2,\ldots,v_n)(v1 ,v2 ,…,vn )。
你可以按任意顺序指挥鸟群进行若干次合并。每次操作可以选择当前鸟群序列中两个相邻且鸟数相同的鸟群,将它们合并为一群,合并后的鸟数为原来两群鸟数之和,其余鸟群的相对顺序保持不变。例如,鸟群序列 (2,2,4,8)(2,2,4,8)(2,2,4,8) 可以经过一次合并变为 (4,4,8)(4,4,8)(4,4,8),还可以继续合并为 (8,8)(8,8)(8,8)。每进行一次合并,鸟群序列的长度减少 111。你可以进行任意次合并,也可以一次都不合并。
从初始鸟群序列出发,通过若干次合并,可以得到若干种不同的鸟群序列。同一个鸟群序列可能由不同的合并顺序得到,但只计算一次。两个鸟群序列相同,当且仅当它们的长度相同,并且对应位置上的鸟数全部相同;否则认为它们不同。
请你求出,从初始鸟群序列出发,一共能够得到多少种不同的鸟群序列。由于答案可能很大,请输出答案对 998244353998244353998244353 取模后的结果。
输入格式
第一行一个正整数 nnn,表示初始鸟群序列的长度。
第二行 nnn 个正整数 v1,v2,…,vnv_1,v_2,\ldots,v_nv1 ,v2 ,…,vn ,依次表示初始鸟群序列中从左到右各群鸟的鸟数,相邻两个数之间用一个空格隔开。
输出格式
输出一行一个整数,表示能够得到的不同鸟群序列的数量对 998244353998244353998244353 取模后的结果。
输入输出样例 #1
输入 #1
输出 #1
输入输出样例 #2
输入 #2
输出 #2
输入输出样例 #3
输入 #3
输出 #3
输入输出样例 #4
输入 #4
输出 #4
说明/提示
样例解释
样例 1 解释
下图给出了从初始鸟群序列 (1,1,1,1,1,1)(1,1,1,1,1,1)(1,1,1,1,1,1) 出发能够得到的鸟群序列,以及其中的部分合并关系:
包括初始序列本身在内,共可得到 181818 种不同的鸟群序列。
数据规模与限制
对于 10%10\%10% 的数据,n≤10n\le 10n≤10。
对于另外 20%20\%20% 的数据,n≤2000n\le 2000n≤2000。
对于另外 15%15\%15% 的数据,所有 viv_ivi 相等。
对于另外 15%15\%15% 的数据,所有 viv_ivi 均为 222 的非负整数次幂。
对于 100%100\%100% 的数据,1≤n≤1061\le n\le 10^61≤n≤106,1≤vi≤1091\le v_i\le 10^91≤vi ≤109。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T827752 [模拟赛 #1] 卡农
题目描述
在卡农中,一个声部奏出旋律后,其他声部会按一定规则依次模仿并与之呼应。为了记录一首特殊作品中各段旋律的演奏次序,乐谱采用了一棵满二叉树来组织这些音符。
这棵树的高度为 hhh,共有 n=2h−1n=2^h-1n=2h−1 个结点。结点编号为 1∼n1\sim n1∼n,其中 111 号结点为根。对于每个非叶结点 uuu,它的左儿子为 2u2u2u,右儿子为 2u+12u+12u+1。
每个结点上放着一个用正整数表示的音符。设结点 uuu 上的音符为 aua_uau ,保证 a1,a2,…,ana_1,a_2,\ldots,a_na1 ,a2 ,…,an 恰好构成 1∼n1\sim n1∼n 的一个排列。
演奏时,音符按照这棵树的中序遍历顺序依次奏出:对于任意结点 uuu,先演奏它左子树中的所有音符,再演奏结点 uuu 上的音符,最后演奏它右子树中的所有音符。
图:以 h=3h=3h=3 为例:结点上的音符与中序遍历
如果最终听到的音符依次恰好为 1,2,…,n1,2,\ldots,n1,2,…,n,则称这次演奏是完美的。
为了调整各段旋律的先后次序,你可以对任意非叶结点 uuu 进行一次调整:交换结点 uuu 的整棵左子树和整棵右子树。进行这次调整需要付出 cuc_ucu 的代价。
排练过程中,乐谱会发生 qqq 次修改。每次修改给出两个结点 x,yx,yx,y,交换这两个结点上的音符(并不交换结点本身)。每次修改都会永久保留,并影响之后的修改。
在每次修改之后,请你求出:至少需要付出多少总代价,才能通过若干次调整使演奏变得完美。如果无论怎样调整都无法得到完美的演奏,输出 −1-1−1。
注意,调整仅用于计算当前这次修改后的答案,不会保留到之后的修改中。处理下一次修改时,树的左右儿子关系恢复为初始状态,仅此前对结点上音符的修改会保留。
输入格式
第一行两个整数 h,qh,qh,q,分别表示树的高度和修改次数。
第二行 nnn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_na1 ,a2 ,…,an ,其中 aua_uau 表示初始时结点 uuu 上的音符。
第三行 2h−1−12^{h-1}-12h−1−1 个整数 c1,c2,…,c2h−1−1c_1,c_2,\ldots,c_{2^{h-1}-1}c1 ,c2 ,…,c2h−1−1 ,其中 cuc_ucu 表示对非叶结点 uuu 进行一次调整的代价。当 h=1h=1h=1 时,这一行为空行。
接下来 qqq 行,每行两个整数 x,yx,yx,y,表示一次修改:交换结点 xxx 与结点 yyy 上的音符。xxx 可能等于 yyy。
输出格式
输出 qqq 行,第 iii 行一个整数,表示第 iii 次修改之后使演奏变得完美所需的最小总代价;若无法使演奏变得完美,输出 −1-1−1。
输入输出样例 #1
输入 #1
输出 #1
输入输出样例 #2
输入 #2
输出 #2
输入输出样例 #3
输入 #3
输出 #3
输入输出样例 #4
输入 #4
输出 #4
说明/提示
样例解释
样例 1 解释
树高 h=4h=4h=4,共 151515 个结点,非叶结点为 1∼71\sim 71∼7。下图每一行对应一次修改:左侧为修改后的乐谱,右侧为进行调整后的结果。圆内的数字为结点上的音符,圆下方的数字为结点编号;加粗的结点及音符为本次修改中交换的音符所在位置,灰色的结点为需要调整的结点。
图:样例 1 中各次修改及调整后的乐谱
* 第 111 次修改交换结点 8,98,98,9 上的音符。此时调整结点 1,3,4,51,3,4,51,3,4,5 即可使演奏变得完美,总代价为 5+8+2+6=215+8+2+6=215+8+2+6=21,输出 212121。
* 第 222 次修改交换结点 10,1110,1110,11 上的音符。此时调整结点 1,3,41,3,41,3,4 即可,总代价为 5+8+2=155+8+2=155+8+2=15,输出 151515。
* 第 333 次修改交换结点 2,32,32,3 上的音符。此时无论怎样调整,都无法使演奏变得完美,输出 −1-1−1。
样例 2 解释
该组样例满足 h≤10h\le 10h≤10,q≤1000q\le 1000q≤1000。
样例 3 解释
该组样例满足 h≤10h\le 10h≤10,q≤1000q\le 1000q≤1000,且每次修改中 xxx 与 yyy 至少有一个等于 111。
样例 4 解释
该组样例满足 h=18h=18h=18,q=105q=10^5q=105。
数据规模与限制
对于 15%15\%15% 的数据,h≤4h\le 4h≤4,q≤10q\le 10q≤10。
对于另外 20%20\%20% 的数据,h≤10h\le 10h≤10,q≤1000q\le 1000q≤1000。
对于另外 20%20\%20% 的数据,所有 cuc_ucu 相等。
对于另外 15%15\%15% 的数据,每次修改中 xxx 与 yyy 至少有一个等于 111。
对于 100%100\%100% 的数据,1≤h≤201\le h\le 201≤h≤20,1≤q≤3×1051\le q\le 3\times 10^51≤q≤3×105,1≤cu≤1091\le c_u\le 10^91≤cu ≤109,1≤x,y≤2h−11\le x,y\le 2^h-11≤x,y≤2h−1。