結果
問題 | No.2582 Random Average^K |
ユーザー |
![]() |
提出日時 | 2023-06-20 11:27:38 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 994 bytes |
コンパイル時間 | 5,910 ms |
コンパイル使用メモリ | 327,112 KB |
最終ジャッジ日時 | 2025-01-08 22:30:54 |
合計ジャッジ時間 | 6,717 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
In file included from /usr/include/c++/13/string:43, from /usr/include/c++/13/bitset:52, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:52, from main.cpp:4: /usr/include/c++/13/bits/allocator.h: In destructor ‘constexpr std::_Bvector_base<std::allocator<bool> >::_Bvector_impl::~_Bvector_impl()’: /usr/include/c++/13/bits/allocator.h:184:7: error: inlining failed in call to ‘always_inline’ ‘constexpr std::allocator< <template-parameter-1-1> >::~allocator() noexcept [with _Tp = long unsigned int]’: target specific option mismatch 184 | ~allocator() _GLIBCXX_NOTHROW { } | ^ In file included from /usr/include/c++/13/vector:67, from /usr/include/c++/13/functional:64, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:53: /usr/include/c++/13/bits/stl_bvector.h:590:14: note: called from here 590 | struct _Bvector_impl | ^~~~~~~~~~~~~
ソースコード
#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> #include <atcoder/all> #define rep(i, n) for (int i = 0; i < n; i++) #define ALL(a) a.begin(), a.end() #define ll long long using namespace std; using namespace atcoder; constexpr int mod = 998244353; using mint = modint998244353; constexpr int INF = 1e6 + 2022; mint fac[INF + 1]; mint inv[INF + 1]; void solve() { fac[0] = 1; for (int i = 1; i <= INF; i++) fac[i] = i * fac[i - 1]; inv[INF] = 1 / fac[INF]; for (int i = INF; i > 0; i--) inv[i - 1] = i * inv[i]; int n, m; cin >> n >> m; mint ans = 0; for (int k = 1; k <= n; k++) { mint mul = fac[n] * inv[k] * inv[n - k]; if ((n - k) & 1) mul = -mul; mul *= mint(k).pow(n + m); ans += mul; } mint ff = 1; for (int i = 1; i <= n; i++) ff *= i + m; ans /= ff * mint(n).pow(m); cout << ans.val() << '\n'; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); solve(); return 0; }