Submission #1065199

#TimeUsernameProblemLanguageResultExecution timeMemory
1065199LittleOrangeLongest Trip (IOI23_longesttrip)C++17
5 / 100
3098 ms348 KiB
#include "longesttrip.h" #include <vector> #include<bits/stdc++.h> using namespace std; using ll = int; std::vector<int> longest_trip(int N, int D) { mt19937_64 mt(random_device{}()); ll t0 = time(0); ll n = N; if (D==3){ vector<ll> r(n); iota(r.begin(),r.end(),0); return r; } vector<vector<ll>> a(n,vector<ll>(n,0)); for(ll i = 0;i<n;i++){ for(ll j = i+1;j<n;j++){ a[i][j] = a[j][i] = are_connected({i},{j}); } } vector<ll> vis(n,0); vector<ll> ret; vector<ll> ord(n); iota(ord.begin(),ord.end(),0); auto it = ord.begin(); vector<ll> cur; function<void(ll)> dfs; dfs = [&](ll i){ cur.push_back(i); vis[i] = 1; for(;it!=ord.end();it++){ ll j = *it; if(a[i][j]&&!vis[j]){ dfs(j); return; } } }; while(time(0)<t0+1){ shuffle(ord.begin(),ord.end(),mt); it = ord.begin(); dfs(ord[0]); if(cur.size()>ret.size()) ret = cur; cur.clear(); for(ll i = 0;i<n;i++) vis[i] = 0; } return ret; }
#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...