Submission #848847

#TimeUsernameProblemLanguageResultExecution timeMemory
848847d4xnLongest Trip (IOI23_longesttrip)C++17
5 / 100
3076 ms588 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() const int N = 256, T = 1e5, T2 = 1e6; mt19937 rng(time(nullptr) + (uint64_t) new char); int a[1], b[1], cnt; vector<int> adj[N], ans, curr; bitset<N> con[N], vis; void dfs(int u) { if (curr.size() > ans.size()) ans = curr; cnt++; if (cnt > T) return; for (int& v : adj[u]) { if (vis[v]) continue; vis[v] = 1; curr.push_back(v); dfs(v); curr.pop_back(); vis[v] = 0; } } 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++) { a[0] = i; b[0] = j; if (are_connected({i}, {j})) { adj[i].push_back(j); adj[j].push_back(i); con[i][j] = con[j][i] = 1; } } } cnt = 0; while (cnt < T2) 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...