Submission #848858

#TimeUsernameProblemLanguageResultExecution timeMemory
848858d4xn가장 긴 여행 (IOI23_longesttrip)C++17
5 / 100
390 ms960 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() const int N = 256, T = 1e6; mt19937 rng(time(nullptr) + (uint64_t) new char); int cnt; vector<int> adj[N], ans, curr; bitset<N> vis; void dfs(int u) { vis[u] = 1; curr.push_back(u); if (curr.size() > ans.size()) ans = curr; cnt++; if (cnt > T) return; for (int& v : adj[u]) { if (vis[v]) continue; dfs(v); if (cnt > T) return; } vis[u] = 1; curr.pop_back(); } vector<int> longest_trip(int N, int D) { if (D == 3) { ans.resize(N); for (int i = 0; i < N; i++) ans[i] = i; return ans; } else { for (int i = 0; i < N; i++) { for (int j = i+1; j < N; j++) { if (are_connected({i}, {j})) { adj[i].push_back(j); adj[j].push_back(i); } } } for (int i = 0; i < 1000; i++) { cnt = 0; vis.reset(); curr.clear(); dfs(rng() % N); } return ans; } }
#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...