結果
問題 | No.573 a^2[i] = a[i] |
ユーザー |
|
提出日時 | 2017-10-06 23:47:13 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 370 ms / 2,000 ms |
コード長 | 1,093 bytes |
コンパイル時間 | 102 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 26,496 KB |
最終ジャッジ日時 | 2024-11-17 02:16:15 |
合計ジャッジ時間 | 7,531 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 47 |
ソースコード
def init_factorials(N, mod):f = 1fac = [1] * (N + 1)for i in range(1, N + 1):f *= if %= modfac[i] = freturn facdef init_inv(N, mod, fac):b = bin(mod-2)[2:][-1::-1]ret = 1tmp = fac[N]if b[0] == '1':ret = fac[N]for bi in b[1:]:tmp *= tmptmp %= modif bi == '1':ret *= tmpret %= modinv = [1] * (N + 1)inv[N] = retfor i in range(N-1, 0, -1):ret *= i + 1ret %= modinv[i] = retreturn invdef nPb(n, b, mod, fac, inv):return (fac[n] * inv[n-b]) % moddef nCb(n, b, mod, fac, inv):return (fac[n] * inv[b] * inv[n-b]) % moddef f(r, c, mod, fac, inv):return (fac[r + c] * inv[r] * inv[c]) % moddef solve(n, mod, fac, inv):ans = 0for i in range(1, n+1):ans += pow(i, n - i, mod) * nCb(n, i, mod, fac, inv)ans %= modreturn ansN = 2 * 10**5mod = 10**9 + 7fac = init_factorials(N, mod)inv = init_inv(N, mod, fac)n = int(input())print(solve(n, mod, fac, inv))