#NOI20221A. 「NOI2022」众数 (Majority element)
「NOI2022」众数 (Majority element)
题目描述
对于一个序列,定义其众数为序列中出现次数严格大于一半的数字。注意该定义与一般的定义有出入,在本题中请以题面中给出的定义为准。
一开始给定 个长度不一的正整数序列,编号为 ,初始序列可以为空。这 个序列被视为存在,其他编号对应的序列视为不存在。
有 次操作,操作有以下类型:
- :在 号序列末尾插入数字 。保证 号序列存在,且 。
- :删除 号序列末尾的数字,保证 号序列存在、非空,且 。
- :将 号序列顺次拼接,得到一个新序列,并询问其众数。如果不存在满足上述条件的数,则返回 。数据保证对于任意 , 是一个仍然存在的序列,,且拼接得到的序列非空。注意:不保证 互不相同,询问中的合并操作不会对后续操作产生影响。
- :新建一个编号为 的序列,其为 号序列后顺次添加 号序列中数字得到的结果,然后删除 对应的序列。此时序列 视为存在,而序列 被视为不存在,在后续操作中也不会被再次使用。保证 、、序列 在操作前存在、且在操作前没有序列使用过编号 。
输入格式
从文件 major.in
中读入数据。
输入的第一行包含两个正整数 和 ,分别表示数列的个数和操作的次数,保证 、。
接下来 行,第 行表示编号为 的数列。每一行的第一个非负整数 表示初始第 号序列的数字个数,接下来有 个非负整数 按顺序表示数列中的数字。假定 代表输入序列长度之和,则保证 、。
接下来 行,每行若干个正整数,表示一个操作,并按照题面描述中的格式输入。
假定 代表所有操作 需要拼接的序列个数之和,则保证 。
输出格式
输出到文件 major.out
中。
对于每次询问,一行输出一个整数表示对应的答案。
2 8
3 1 1 2
3 3 3 3
3 1 1
3 1 2
4 2 1 3
3 1 3
2 3
3 1 3
1 3 1
3 1 3
1
3
-1
3
-1
4 9
1 1
1 2
1 3
1 4
3 4 1 2 3 4
1 1 2
3 2 1 2
2 3
3 3 1 2 3
1 4 4
1 4 4
1 4 4
3 4 1 2 3 4
-1
2
2
4
样例 3
见附件中的 [major3.in
](file://major3.in) 与 [major3.ans
](file://major3.ans)。
该样例满足测试点 的限制。
样例 4
见附件中的 [major4.in
](file://major4.in) 与 [major4.ans
](file://major4.ans)。
该样例满足测试点 的限制。
数据范围与提示
对于所有测试数据,保证 。
测试点编号 | 特殊性质 A | 特殊性质 B | 特殊性质 C | ||
---|---|---|---|---|---|
否 | 是 | ||||
是 | 是 | ||||
否 | 否 | ||||
否 | 是 | ||||
否 | 是 | ||||
否 | |||||
是 | 是 | ||||
否 | 否 | ||||
否 | 是 | ||||
否 | 是 | ||||
否 |
特殊性质 A:保证 且没有操作 。
特殊性质 B:保证任意时刻任何序列中只有数字 和 。
特殊性质 C:保证没有操作 。