#P9330. [JOIST 2023] JOI 国的节日 2 / Festivals in JOI Kingdom 2
[JOIST 2023] JOI 国的节日 2 / Festivals in JOI Kingdom 2
题目描述
在 JOI 王国,每年都会举行一次全国性的节日。在节日期间,总共有 个活动。每个活动的时间表已经固定。 个活动的时间表由长度为 的序列 描述,满足以下条件:
- 从 到 之间的每个整数都出现在 或 中。
- 。
- 。
第 个活动将在节日开始后的 分钟开始,并在节日开始后的 分钟结束。
节日的参与者可以选择参加任意活动。然而,不允许参加时间表重叠的两个活动。(注意,活动的开始时间和结束时间彼此不同。)
JOI-kun 想参加尽可能多的活动。直到去年,他通过计算机使用以下程序选择参加的活动:
对于 ,按以下顺序进行。
如果第 个活动的时间表与他已经选择参加的其他活动的时间表不重叠,他将参加第 个活动。否则,他将不参加第 个活动。
然而,在学习了计算机科学之后,JOI-kun 注意到上述算法并不一定能最大化他参加的活动数量。从今年开始,JOI-kun 将使用改进的算法。使用改进的算法,JOI-kun 将能够最大化他参加的活动数量。
JOI-kun 想知道使用改进算法时,产生更多活动数量的情况数。
编写一个程序,给定整数 和一个大质数 ,计算出描述 个活动时间表的序列 的对数,其中改进的算法产生更多的活动数量。由于答案可能非常大,程序应输出答案除以 的余数。
输入格式
从标准输入读取以下数据。
输出格式
向标准输出写入一行。输出应包含答案的余数,即描述 个活动时间表的序列 的对数,其中改进的算法产生更多的活动数量,除以 的余数。
题目大意
对于以下问题:
给定长度为 的序列 、,满足以下条件:
- 在序列 与序列 中, 到 的整数各出现恰好一次;
- 对于 ,;
- 对于 ,。
求:最多能在 中选出多少个两两不交的区间。
考虑以下算法:
从 到 枚举 ,若 与所有已经选择的区间都不交,则选择该区间。最后输出选择的区间数。
给定 ,求:有多少个满足条件的序列对 ,使得以上算法无法求出正确的结果。答案对 取模。
3 100000007
2
4 100000007
28
15 999999937
935834920
提示
【样例解释 #1】
例如,考虑 和 的情况。如果 JOI-kun 使用去年使用的算法,他将只参加第一个活动。另一方面,如果他使用正确的算法来最大化活动数量,他将参加第二个和第三个活动。因此,他将参加两个活动。在这种情况下,改进的算法产生了更多的活动数量。
以下是改进的算法产生更多活动数量的序列对 :
因此,输出 ,这是 除以 的余数。
该样例满足所有子任务的限制。
【样例解释 #2】
有 对序列 满足条件。因此,输出 ,这是 除以 的余数。
该样例满足所有子任务的限制。
【样例解释 #3】
有 对序列 满足条件。因此,输出 ,这是 除以 的余数。
该样例满足子任务 的限制。
【数据范围】
对于所有测试数据,满足 ,,保证 是质数,保证所有输入均为整数。
子任务编号 | 分值 | |
---|---|---|
题面翻译由 ChatGPT-4o 提供。