제출 #708935

#제출 시각아이디문제언어결과실행 시간메모리
708935Stickfish철인 이종 경기 (APIO18_duathlon)C++17
5 / 100
2 ms468 KiB
#include <iostream> #include <vector> #include <queue> #include <bitset> using namespace std; using ll = long long; const int MAXN = 10; vector<int> edg[MAXN]; bitset<1 << MAXN> dp[MAXN][MAXN]; signed main() { int n, m; cin >> n >> m; for (int i = 0; i < m; ++i) { int u, v; cin >> u >> v; --u, --v; edg[u].push_back(v); edg[v].push_back(u); } for (int i = 0; i < n; ++i) dp[i][i][1 << i] = 1; for (int msk = 1; msk < (1 << n); ++msk) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (!dp[i][j][msk]) continue; for (auto u : edg[j]) { if ((msk & (1 << u)) == 0) dp[i][u][msk + (1 << u)] = 1; } } } } int ans = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j) continue; int c = (1 << i) + (1 << j); for (int msk = 0; msk < (1 << n); ++msk) { if (!dp[i][j][msk]) continue; c |= msk; } ans += __builtin_popcount(c) - 2; } } cout << ans << '\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...