Description
Input
Output
Sample Input
7 3
Sample Output
4
Data Constraint
Hint
思路:
一眼看去好像第二类斯特林数啊,但打了个表发现不是
其实怎么证明我也不太会
但打表后我们得到了一个递推式:
dp[i][j]=dp[i-1][j-1]+dp[i-j][j];
二维递推即可
代码:
#include#include #define rii register int i#define rij register int j #define p 998244353using namespace std;long long dp[5005][5005],n,k;int main(){ scanf("%d%d",&n,&k); dp[1][1]=1; for(rii=2;i<=n;i++) { for(rij=1;j<=i;j++) { dp[i][j]=dp[i-1][j-1]+dp[i-j][j]; dp[i][j]%=p; } } cout<