#P15931. [Roi2019 Regional]机器学习
[Roi2019 Regional]机器学习
人工智能实验室开发了一种新的机器学习方法。训练程序需要进行 次迭代。每次迭代中,程序会在某个训练集上运行。
训练集的复杂度从 到 。一个训练计划由整数数组
描述,其中 表示第 次迭代使用的训练集复杂度。对所有 ,必须满足:
研究人员发现,训练计划的效果与复杂度的二进制表示有关。为了使计划有效,需要对任意 ,满足:
这里 and 表示按位与。例如:
在 C++、Java 和 Python 中,该操作记为 &。
但是,一直使用同一复杂度的训练集无法取得进步。因此训练计划还必须满足 个额外要求。每个要求由两个整数 给出,表示:
请计算有多少个有效训练计划满足所有这些要求。答案可能很大,请输出它对 取模后的结果。
输入格式
第一行包含三个整数:
其中:
$$1\le n\le 3\cdot 10^5,\qquad 0\le m\le 3\cdot 10^5,\qquad 0\le k\le 10^{18}.$$接下来 行,每行包含两个整数 ,表示要求 :
保证所有要求互不相同。
输出格式
输出一个整数:满足条件的有效训练计划数量对 取模的结果。
样例 1 输入
2 0 3
样例 1 输出
9
样例 2 输入
3 1 2
1 2
样例 2 输出
2
样例说明
样例 1 中所有可能的训练计划为:
$$[0,0],\ [0,1],\ [0,2],\ [0,3],\ [1,1],\ [1,3],\ [2,2],\ [2,3],\ [3,3].$$样例 2 中满足条件的计划为:
子任务
| 子任务 | 分值 | 限制 | 依赖 | 检查信息 |
|---|---|---|---|---|
| 1 | 8 | - | 完全反馈 | |
| 2 | 20 | 1 | 第一错误 | |
| 3 | 10 | 1, 2 | ||
| 4 | 8 | - | ||
| 5 | 16 | 1, 4 | ||
| 6 | $1\le n\le 2000,\ 0\le m\le 2000,\ 0\le k\le 10^{18}$ | 1, 4, 5 | ||
| 7 | 10 | $1\le n\le 3\cdot 10^5,\ 0\le m\le 200,\ 0\le k\le 10^7$ | 1, 2, 4 | |
| 8 | 6 | $1\le n\le 3\cdot 10^5,\ 0\le m\le 200,\ 0\le k\le 10^{18}$ | 1, 2, 3, 4, 7 | |
| 9 | 16 | $1\le n\le 3\cdot 10^5,\ 0\le m\le 3\cdot 10^5,\ 0\le k\le 10^{18}$ | 1-8 | |