Submission #26924

#TimeUsernameProblemLanguageResultExecution timeMemory
26924wangyenjenCity (JOI17_city)C++14
8 / 100
502 ms56648 KiB
/// Author: Wang, Yen-Jen #include "Encoder.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; static const int MAX_N = 250000; static int dfs_clock; static vector<int> table; static vector<int> G[MAX_N]; static int lb[MAX_N] , rb[MAX_N]; static void build_table() { int x = 1; table.push_back(x); while((int)table.size() < 243) { int x2 = x * 1.05; if(x2 == x) x2++; table.push_back(x2); x = x2; } } static void dfs(int u , int fa) { lb[u] = ++dfs_clock; for(int v : G[u]) { if(v != fa) dfs(v , u); } dfs_clock = rb[u] = lb[u] + *lower_bound(table.begin() , table.end() , dfs_clock - lb[u]); } void Encode(int N , int A[] , int B[]) { build_table(); for(int i = 0; i < N; i++) G[i].clear(); for(int i = 0; i < N - 1; i++) { G[A[i]].push_back(B[i]); G[B[i]].push_back(A[i]); } dfs_clock = 0; dfs(0 , -1); for(int i = 0; i < N; i++) { int x = lower_bound(table.begin() , table.end() , rb[i] - lb[i]) - table.begin(); Code(i , (ll)lb[i] * (int)table.size() + x); } }
/// Author: Wang, Yen-Jen #include "Device.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; static const int MAX_N = 250000; static vector<int> table; static void build_table() { int x = 1; table.push_back(x); int cnt = 0; while((int)table.size() < 243) { int x2 = x * 1.05; if(x2 == x) x2++; table.push_back(x2); x = x2; } } void InitDevice() { build_table(); } int Answer(long long S , long long T) { int sl = S / (int)table.size(); int sr = sl + table[S % (int)table.size()]; int tl = T / (int)table.size(); int tr = tl + table[T % (int)table.size()]; if(tl <= sl && sr <= tr) return 0; else if(sl <= tl && tr <= sr) return 1; else return 2; }

Compilation message (stderr)

Device.cpp: In function 'void build_table()':
Device.cpp:16:9: warning: unused variable 'cnt' [-Wunused-variable]
     int cnt = 0;
         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...