?
№ | Отправитель | Задача | Язык | Вердикт | Время | Память | Отослано | Протест. | |
---|---|---|---|---|---|---|---|---|---|
227816023 |
Дорешивание: FreshOrange |
1838E - 9 | C++14 (GCC 6-32) | Полное решение | 311 мс | 3144 КБ | 2023-10-12 16:10:18 | 2023-10-12 16:10:18 |
#include<bits/stdc++.h> using namespace std; typedef long long E; const E mod=1e9+7; E ksm(E a,E b){ E ret=1; while(b){ if(b&1) ret=ret*a%mod; a=a*a%mod; b>>=1; } return ret; } const int N=200010; E jc[N],inv[N]; inline E C(E n,E m){ return n<m?0:jc[n]*inv[m]%mod*inv[n-m]%mod; } void solve(){ E n,m,k; cin>>n>>m>>k; E ans=0; for(int i=0; i<n; i++) scanf("%lld",&ans); ans=ksm(k,m); E t=1; for(int p=m; p!=m-n; p--){ ans=(ans-ksm(k-1,p)*t%mod)%mod; t=t*p%mod*ksm(m-p+1,mod-2)%mod; } cout<<(ans%mod+mod)%mod<<endl; } int main(){ int t=200000; jc[0]=inv[0]=1; for(int i=1; i<=t; i++) jc[i]=jc[i-1]*i%mod; inv[t]=ksm(jc[t],mod-2); for(int i=t-1; i; i--) inv[i]=inv[i+1]*(i+1)%mod; int T; cin>>T; while(T--) solve(); return 0; }
?
?
?
?