Submission #848876

#TimeUsernameProblemLanguageResultExecution timeMemory
848876d4xnLongest Trip (IOI23_longesttrip)C++17
5 / 100
972 ms948 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() const int N = 256, T = 1e3; 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); cnt++; if (cnt > T) { if (curr.size() > ans.size()) ans = curr; return; } //shuffle(all(adj[u]), rng); for (int& v : adj[u]) { if (vis[v]) continue; dfs(v); if (cnt > T) return; } if (curr.size() > ans.size()) ans = curr; vis[u] = 0; 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 < 10; i++) { cnt = 0; vis.reset(); curr.clear(); for (int j = 0; j < N; j++) { shuffle(all(adj[j]), rng); } 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...