奇加偶减。
a[m][i]是杨辉三角,也就是组合数,
公式ans+=a[m][i]*i^n*op
#include <bits/stdc++.h> using namespace std; int mod=1e9+7; int a[105][105]; int main() { a[1][1]=1; a[1][0]=1; for(int i=2;i<=100;i++) { a[i][0]=1; for(int j=1;j<i;j++) { a[i][j]=(a[i-1][j-1]+a[i-1][j])%mod; } a[i][i]=1; } int n,m; while(~scanf("%d%d",&n,&m)) { long long ans=0,tmp; long long op=1; for(int i=m;i>=1;i--) { tmp=i; for(int j=1;j<n;j++) { tmp=tmp*i; tmp%=mod; } tmp*=a[m][i]; tmp%=mod; tmp*=op; ans+=tmp+mod; ans%=mod; op=-op; } printf("%lld\n",ans); } return 0; }