AT_agc041_d [AGC041D] Problem Scores
题目描述
在比赛中,评委选出了 $N$ 道题目,现在需要为每道题目分配分数。
第 $i$ 道题目的分数 $A_i$ 必须是 $1$ 到 $N$ 之间的整数。此外,题目已经按照难度从易到难排列,要求 $A_1 \leq A_2 \leq \ldots \leq A_N$(允许多道题目的分数相同)。
你是 ICPC 的粉丝,希望解题数多的选手排名更高。为此,你希望对于任意的 $k$($1 \leq k \leq N-1$),任意 $k$ 道题目的分数之和都严格小于任意 $k+1$ 道题目的分数之和。
请问有多少种分配分数的方法?请将这个数对给定素数 $M$ 取模后输出。
输入格式
输入为一行,包含两个整数:
> $N$ $M$
输出格式
输出分配分数的方法数对 $M$ 取模后的结果。
说明/提示
### 限制条件
- $2 \leq N \leq 5000$
- $9 \times 10^8 < M < 10^9$
- $M$ 是素数。
- 输入中的所有值均为整数。
### 样例解释 1
可能的分配方法有 $(1, 1)$、$(1, 2)$、$(2, 2)$。
### 样例解释 2
可能的分配方法有 $(1, 1, 1)$、$(1, 2, 2)$、$(1, 3, 3)$、$(2, 2, 2)$、$(2, 2, 3)$、$(2, 3, 3)$、$(3, 3, 3)$。
由 ChatGPT 4.1 翻译