Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define mod 1000000007
- long long ncr[405][405],inv[405],dp[405][405];
- long long big_ncr(int n,int r)
- {
- long long ret=1;
- for (int i=n-r+1;i<=n;i++)
- ret=(ret*i)%mod;
- for (int i=1;i<=r;i++)
- ret=(ret*inv[i])%mod;
- return ret;
- }
- int main()
- {
- int n,k;
- scanf("%d%d",&n,&k);
- ncr[0][0]=1;
- for (int i=1;i<=2*k;i++)
- {
- dp[i][0]=1;
- ncr[i][0]=1;
- for (int j=1;j<=2*k;j++)
- {
- dp[i][j]=(dp[i-1][j]+(i-1)*dp[i-1][j-1])%mod;
- ncr[i][j]=(ncr[i-1][j]+ncr[i-1][j-1])%mod;
- }
- }
- inv[1]=1;
- for (int i=2;i<=2*k;i++)
- inv[i]=inv[mod%i]*(mod-mod/i)%mod;
- int ans[]={1,0};
- for (int j=1;j<=k;j++)
- {
- for (int i=1;i<=min(n,2*j);i++)
- {
- int cnt=0;
- for (int f=0;f<=i;f++)
- cnt=(cnt+(f%2? -1:1)*ncr[i][f]*dp[i-f][j]%mod+mod)%mod;
- ans[j%2]=(ans[j%2]+big_ncr(n,i)*cnt)%mod;
- }
- printf("%d ",ans[j%2]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement