結果
| 問題 |
No.654 Air E869120
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 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;
}
vjudge1