結果
問題 | No.573 a^2[i] = a[i] |
ユーザー |
![]() |
提出日時 | 2017-10-11 21:28:53 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 29 ms / 2,000 ms |
コード長 | 1,569 bytes |
コンパイル時間 | 967 ms |
コンパイル使用メモリ | 86,436 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-17 09:46:01 |
合計ジャッジ時間 | 2,300 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 47 |
ソースコード
#include<iostream>#include<cstdio>#include<vector>#include<map>#include<tuple>#include<string>#include<cmath>#include<climits>#include<algorithm>#include<bitset>#include<set>#include<stack>using namespace std;typedef long long ll;typedef vector<int> vi;typedef vector<vi> vvi;#define rep(i,n) for(ll i=0;i<(n);i++)#define tii tuple<int,int>#define tiii tuple<int,int,int>#define mt make_tuple#define pb push_back#define ALL(a) (a).begin(),(a).end()#define FST first#define SEC secondconst int INF = (INT_MAX/2);const ll LLINF = (LLONG_MAX/2);const double eps = 1e-5;const double PI = M_PI;#define DEB cerr<<"!"<<endl#define SHOW(a,b) cerr<<(a)<<" "<<(b)<<endl#define SHOWARRAY(ar,i,j) REP(a,i)REP(b,j)cerr<<ar[a][b]<<((b==j-1)?((a==i-1)?("\n\n"):("\n")):(" "))#define DIV 1000000007ll pow(ll x,ll n,ll m){ll r=1;while(n>0){if((n&1)==1)r=r*x%m;x=x*x%m;n>>=1;}return r%m;}class FermatCombination{public:vector<ll> factrial; // 階乗vector<ll> inverse; // 逆元FermatCombination(int size){factrial.resize(size+1);inverse.resize(size+1);factrial[0] = 1;inverse[0] = 1;for(int i = 1; i < size+1; i++){factrial[i] = factrial[i-1] * i % DIV;inverse[i] = pow(factrial[i],DIV-2,DIV);}}ll combination(int n, int k){return factrial[n]* inverse[k] % DIV * inverse[n - k] % DIV;}};int main(){int n; cin >> n;FermatCombination FC(n);ll ans = 0;rep(i,n+1){ans +=FC.combination(n,i) * pow(i,n-i,DIV) % DIV;ans %= DIV;}cout << ans << endl;}