AT_agc035_e [AGC035E] Develop

题目描述

黑板上写有从 $-10^{18}$ 到 $10^{18}$ 的每一个整数各一个。高桥君可以任意多次(包括 $0$ 次)重复以下操作: - 从黑板上选择一个 $1$ 到 $N$ 之间的整数,记为 $x$,并将其从黑板上擦去。 - 如果 $x-2$ 不在黑板上,则将 $x-2$ 写到黑板上。 - 如果 $x+K$ 不在黑板上,则将 $x+K$ 写到黑板上。 经过若干次操作后,问黑板上可能出现的整数集合有多少种不同的情况。请输出这个数对 $M$ 取模的结果。 如果存在某个整数只出现在其中一个集合中,则认为两个集合不同。

输入格式

输入为一行,包含三个整数: > $N$ $K$ $M$

输出格式

输出经过若干次操作后,黑板上可能出现的整数集合的种数对 $M$ 取模的结果。

说明/提示

### 限制条件 - $1 \leq K \leq N \leq 150$ - $10^8 \leq M \leq 10^9$ - $N,K,M$ 均为整数 ### 样例解释 1 所有小于等于 $0$ 或大于等于 $4$ 的整数,以及包含 $1,2,3$ 中至少一个数的所有集合都满足条件,一共有 $7$ 种情况。 由 ChatGPT 4.1 翻译