제출 #1246720

#제출 시각아이디문제언어결과실행 시간메모리
1246720caterpillowAmusement Park (CEOI19_amusementpark)C++20
0 / 100
1 ms324 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const ll mod = 998244353; int main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; vector<int> adj(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--, v--; adj[u] |= (1 << v); } vector<array<ll, 2>> dp(1 << n, {0, 0}); // {# of ways, sum of ways} dp[0] = {1, 0}; for (int msk = 0; msk < (1 << n); msk++) { for (int i = 0; i < n; i++) if (1 & ~msk >> i) { (dp[msk | (1 << i)][0] += dp[msk][0]) %= mod; (dp[msk | (1 << i)][1] += dp[msk][0] * __builtin_popcount(msk & adj[i]) + dp[msk][1]) %= mod; } } cout << dp[(1 << n) - 1][1] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...