该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
跳一跳世界第一。
不处,不收徒,差距自己找。
题目描述
给定一个坐标轴,范围是 1∼n。每个点 i 可以跳到 i+1(i+1≤n)或 i−1(i−1≥1)或他的因子数处。每个点只能到达一次。问从点 n 到点 1 一共有多少方案。答案对 p 取模。
两种方案不同当且仅当存在一次跳跃后的位置不同或存在一次跳跃的种类不同。
输入格式
一行两个整数 n,p。
输出格式
一行一个整数,表示答案对 p 取模后的结果。
样例
3 1000000007
3
样例 1 解释
设 → 表示向上或向下跳,⇒ 表示跳因子。共三种方案如下。
- 3⇒1
- 3→2→1
- 3→2⇒1
4 1000
7
样例 2 解释
设 → 表示向上或向下跳,⇒ 表示跳因子。共七种方案如下。
- 4→3⇒1
- 4→3→2→1
- 4→3→2⇒1
- 4⇒2→3⇒1
- 4⇒2→1
- 4⇒2⇒1
- 4⇒1
100 511609
272799
数据范围
本题采用捆绑测试。
- Subtask 1(8 pts):n≤20。
- Subtask 2(11 pts):n≤150。
- Subtask 3(23 pts):n≤300。
- Subtask 4(26 pts):n≤1000。
- Subtask 5(32 pts):无特殊限制。
对于所有测试数据,1≤n≤5×103,2≤p≤109+7。