Submission #566391

#TimeUsernameProblemLanguageResultExecution timeMemory
566391zaneyuFun Tour (APIO20_fun)C++14
0 / 100
125 ms141716 KiB
#include "fun.h"

#include <bits/stdc++.h>
#define pb push_back
#define sz(x) (int)x.size()
#define REP1(i,n) for(int i=1;i<=n;i++)
using namespace std;
const int maxn=1e5+5;
#define REP(i,n) for(int i=0;i<n;i++)
int dist[1005][1005];
bool vis[maxn];
vector<int> v[maxn];
int dep[maxn];
deque<int> vv[maxn];
void dfs(int u){
	vv[dep[u]].pb(u);
	for(int x:v[u]){
		dep[x]=dep[u]+1;
		dfs(x);
	}
}
int get(int a,int b){
	int d=0;
	while(a!=b){
		if(dep[a]>dep[b]){
			a=(a-1)/2;
		}
		else b=(b-1)/2;
		++d;
	}
	return d;
}
vector<int> createFunTour(int n, int q) {
	REP1(i,n-1){
		v[(i-1)/2].pb(i);
	}
	dfs(0);
	int st=n-1;
	vector<int> ans;
	REP(i,n){
		ans.pb(st);
		int mx=0,p=0;
		for(int j=19;j>=0;j--){
			if(sz(vv[j])){
				int a=vv[j][0];
				if(get(st,a)>mx){
					mx=get(st,a);
					p=a;
				}
				a=vv[j].back();
				if(get(st,a)>mx){
					mx=get(st,a);
					p=a;
				}
			}
		}
		st=p;
	}
}

Compilation message (stderr)

fun.cpp: In function 'std::vector<int> createFunTour(int, int)':
fun.cpp:59:1: warning: no return statement in function returning non-void [-Wreturn-type]
   59 | }
      | ^
#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...