分裂
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
分裂()
【题目描述】
小 D 在初学 C++ 的时候写了如下代码:
int split(vector <int> p) {
if(p.empty()) return 0;
int n=p.size();
vector <int> l,r;
for(int i=1;i<n;++i) {
if(p[i]<p[0]) l.push_back(p[i]);
else r.push_back(p[i]);
}
return n+split(l)+split(r);
}
他想知道有多少个 的排列 ,使得 作为该函数的输入,得到的返回值 ,他只关心答案对 取模后的结果。
【输入格式】
从 中读入数据。
一行两个整数 。
【输出格式】
输出到 中。
一行一个整数表示满足条件的排列数对 取模后的结果。
【样例 1 输入】
4 9
【样例 1 输出】
16
【样例 2 输入】
15 77
【样例 2 输出】
228312362
【样例 3 输入】
40 998244353
【样例 3 输出】
799434881
【样例 4 输入】
119 721
【样例 4 输出】
94362767
【样例 5 输入】
107 3321
【样例 5 输出】
590250400
【数据范围】
对于所有的测试数据有:。
子任务编号 | 分值 | 特殊限制 |
---|---|---|
无特殊限制 |
NOIP2024 模拟赛(四)hard
- Status
- Done
- Rule
- OI
- Problem
- 4
- Start at
- 2024-8-10 7:50
- End at
- 2024-8-10 12:05
- Duration
- 4.3 hour(s)
- Host
- Partic.
- 32