传送门
题目是给你m个数字,让你求1~n个数分别能构成的单调不降序列的个数的和且模一个1e6+3
对于这道题,我们先考虑n个人,然后我们把m个数字分给n个人,但是会有有人分不到的情况,所以我们假设每人都能分到
这样我们的总个数就变成了n+m个数字分给m个人,这样我们用隔板法能得到C(m-1,n+m-1)
然后总和就是n取1~n个组合数加起来,然而组合数有一个公式是C(m,n)=C(m,n-1)+C(m-1,n-1)
又由于C(m,m)=1,即C(m,1+m-1)=1,与C(m-1,m)合并后为C(m,m+1)
然后我们给整体总和的式子加1,化简就能得到C(m,n+m)-1
AC代码如下:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e6+3;
int fac[mod+10],ifac[mod+10],n