제출 #78808

#제출 시각아이디문제언어결과실행 시간메모리
78808wleung_bvg통행료 (IOI18_highway)C++14
12 / 100
213 ms7876 KiB
#include "highway.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define eb emplace_back #define mp make_pair #define f first #define s second #define all(a) (a).begin(),(a).end() #define For(i,a,b) for(auto i=(a);i<(b);i++) #define FOR(i,b) For(i,0,b) #define Rev(i,a,b) for(auto i=(a);i>(b);i--) #define REV(i,a) Rev(i,a,-1) #define FORE(i,a) for(auto&&i:a) #define sz(a) (int((a).size())) #define MIN(a,b) ((a)=min((a),(b))) #define MAX(a,b) ((a)=max((a),(b))) using ll=long long;using ld=long double;using uint=unsigned int;using ull=unsigned long long; using pii=pair<int,int>;using pll=pair<ll,ll>;using pill=pair<int,ll>;using plli=pair<ll,int>;using pdd=pair<double,double>;using pld=pair<ld,ld>; constexpr const char nl='\n',sp=' ';constexpr const int INT_INF=0x3f3f3f3f;constexpr const ll LL_INF=0x3f3f3f3f3f3f3f3f; constexpr const double D_INF=numeric_limits<double>::infinity();constexpr const ld LD_INF=numeric_limits<ld>::infinity();constexpr const double EPS=1e-9; const int MAXN = 90005; bool vis[MAXN]; vector<int> adj[MAXN]; void find_pair(int N, vector<int> U, vector<int> V, int A, int B) { int M = sz(U); FOR(i, M) { adj[U[i]].pb(V[i]); adj[V[i]].pb(U[i]); } vector<int> Q(M, 0), verts; ll DA = ask(Q); fill(vis, vis + N, false); queue<int> q; q.push(0); vis[0] = 1; while (!q.empty()) { int v = q.front(); verts.pb(v); q.pop(); FORE(w, adj[v]) { if (vis[w]) continue; vis[w] = 1; q.push(w); } } int lo = 0, hi = sz(verts) - 1, mid; while (lo <= hi) { mid = lo + (hi - lo) / 2; FOR(i, mid) vis[verts[i]] = 0; For(i, mid, N) vis[verts[i]] = 1; FOR(i, M) Q[i] = vis[U[i]] ^ vis[V[i]]; if (ask(Q) == DA) hi = mid - 1; else lo = mid + 1; } answer(0, verts[hi]); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...