結果
問題 |
No.654 Air E869120
|
ユーザー |
![]() |
提出日時 | 2025-05-21 20:42:09 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,345 bytes |
コンパイル時間 | 7,569 ms |
コンパイル使用メモリ | 209,344 KB |
実行使用メモリ | 17,368 KB |
最終ジャッジ日時 | 2025-05-21 20:42:19 |
合計ジャッジ時間 | 8,946 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 5 |
other | WA * 35 |
ソースコード
/* * Author: ttq012 * Date: 05/20/2025 */ #include <bits/stdc++.h> #define int long long using namespace std; const int N = 500010; const int mod = 1e9 + 7; int n, cnt, a[N]; void dfs(int dep) { if (dep == n) { int ok = 1; for (int i = 0; i < n; ++i) ok &= (a[i] == a[a[i]]); cnt += ok; return; } for (int i = 0; i < n; ++i) { a[dep] = i; dfs(dep + 1); } } int fac[N], inv[N], ifac[N]; int binom(int a, int b) { if (b < 0 || a < b) return 0; return fac[a] * ifac[b] % mod * ifac[a - b] % mod; } int power(int a, int b, int c) { int ans = 1; while (b) { if (b & 1) ans = ans * a % c; a = a * a % c, b >>= 1; } return ans; } signed main() { // freopen("oncemore.in", "r", stdin); // freopen("oncemore.out", "w", stdout); cin.tie(0)->sync_with_stdio(false); cin >> n; for (int i = 0; i < 2; ++i) fac[i] = inv[i] = ifac[i] = 1; for (int i = 2; i < N; ++i) { fac[i] = fac[i - 1] * i % mod; inv[i] = mod - inv[mod % i] * (mod / i) % mod; ifac[i] = ifac[i - 1] * inv[i] % mod; } int cnt = 0; for (int i = 0; i <= n; ++i) cnt = (cnt + power(n - i, i, mod) * binom(n, i) % mod) % mod; cout << cnt << '\n'; return 0; }