Submission #1143071

#TimeUsernameProblemLanguageResultExecution timeMemory
1143071CDuongCity (JOI17_city)C++20
0 / 100
89 ms3908 KiB
#include "Encoder.h" #include <bits/stdc++.h> #define taskname "" #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define i64 long long #define isz(x) (int)x.size() using namespace std; void Encode(int N, int A[], int B[]) { vector<vector<int>> g(N); for (int i = 0; i < N - 1; ++i) { int u = A[i], v = B[i]; g[u].emplace_back(v); g[v].emplace_back(u); } vector<int> a(1 << 8); for (int i = 0; i + 1 < 1 << 8; ++i) { a[i + 1] = max(a[i] + 1.0L, a[i] * 1.05L); } int tdfs = 0; vector<i64> tin(N), tout(N); auto dfs = [&](auto self, int u, int p) -> void { tin[u] = tdfs++; for (auto v : g[u]) if (v != p) { self(self, v, u); } int len = tdfs - tin[u] - 1; len = *lower_bound(all(a), len); tdfs = tin[u] + len + 1; tout[u] = tdfs; }; dfs(dfs, 0, -1); for (int u = 0; u < N; ++u) { assert(tin[u] < 1 << 20); int len = tout[u] - tin[u] - 1; Code(u, tin[u] << 8 | (lower_bound(all(a), len) - a.begin())); } }
#include "Device.h" #include <bits/stdc++.h> #define taskname "" #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define i64 long long #define isz(x) (int)x.size() using namespace std; vector<int> a; void InitDevice() { a.resize(1 << 8); for (int i = 0; i + 1 < 1 << 8; ++i) { a[i + 1] = max(a[i] + 1.0L, a[i] * 1.05L); } } const int lim = (1 << 9) - 1; int Answer(i64 S, i64 T) { int Sl = S >> 9, Sr = Sl + a[S & lim] + 1; int Tl = T >> 9, Tr = Tl + a[T & lim] + 1; if (Tl <= Sl and Sr <= Tr) return 0; if (Sl <= Tl and Tr <= Sr) return 1; return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...