//设n的逆元为k,x/n%moder == x%moder*k%moder%moder
//运用等比数列求和公式
#include<iostream>
using namespace std;
typedef long long ll;
const ll P=1e9+7;
void open_file(){
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
}
void close_file(){
fclose(stdin);
fclose(stdout);
}
ll ksm(ll a,ll b,ll c){
ll ans=1;
while (b)
{
if (b&1) ans=ans*a%c;
a=a*a%c;
b>>=1;
}
return ans;
}
ll ny(ll a,ll c){
return ksm(a,c-2,c);
}
int main()
{
open_file();
ll n,m;
cin>>n>>m;
ll ans=m;
for (ll i=2;i<=n;i++){
ll tmp=(ksm(i,m,P)*i%P-i)%P;
tmp=tmp*ny(i-1,P)%P;
ans=(tmp+ans)%P;
}
cout<<ans<<endl;
close_file();
return 0;
}
暑末 Day3 T1 Sum
最新推荐文章于 2022-10-25 20:12:17 发布