제출 #1186587

#제출 시각아이디문제언어결과실행 시간메모리
1186587versesrev게임 (IOI14_game)C++20
42 / 100
1093 ms756 KiB
#include <deque> #include <vector> #include <bitset> constexpr int N = 1500; int n{}; std::bitset<N> mask; std::vector<std::bitset<N>> edges; void initialize(int _n) { n = _n; edges.assign(n, {}); for (int i = 0; i < n; ++i) mask[i] = true; for (int i = 0; i < n; ++i) { edges[i] = ~edges[i] & mask; } } int hasEdge(int u, int v) { edges[u][v] = edges[v][u] = false; std::bitset<N> not_visited = mask; std::bitset<N> new_vs; new_vs[u] = true; while (new_vs.any() and not_visited[v]) { not_visited &= ~new_vs; std::bitset<N> next_new_vs; for (int i = 0; i < n; ++i) { if (new_vs[i]) { next_new_vs |= edges[i] & not_visited; } } std::swap(new_vs, next_new_vs); } if (not_visited[v]) { edges[u][v] = edges[v][u] = true; } return edges[u][v]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...