Submission #889181

#TimeUsernameProblemLanguageResultExecution timeMemory
889181Onown공장들 (JOI14_factories)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <factories.h> using namespace std; #define int long long const int N = 5e5 + 55, L = 2e0 + 20, Q = 7e2 + 72, I = 1e18 + 118; int n, q, h[N], par[N][L], spt[N][L], dis[N]; vector<pair<int, int>> adj[N]; void dfs(int v, int p) { for (auto [u, w]: adj[v]) if (u != p) { par[u][0] = v; spt[u][0] = w; h[u] = h[v] + 1; dfs(u, v); } } int distance(int v, int u) { int ans = 0; if (h[v] < h[u]) swap(v, u); for (int i = 0; i < L; i++) if ((1 << i) & (h[v] - h[u])) { ans += spt[v][i]; v = par[v][i]; } if (v == u) return ans; for (int i = L - 1; i >= 0; i--) if (par[v][i] != par[u][i]) { ans += spt[v][i] + spt[u][i]; v = par[v][i]; u = par[u][i]; } return ans + spt[v][0] + spt[u][0]; } void Init(int N, int A[], int B[], int D[]) { n = N; for (int i = 0; i < n - 1; i++) { adj[A[i] + 1].push_back({B[i] + 1, C[i]}); adj[B[i] + 1].push_back({A[i] + 1, C[i]}); } dfs(1, 0); for (int i = 1; i < L; i++) for (int j = 1; j <= n; j++) { par[j][i] = par[par[j][i - 1]][i - 1]; spt[j][i] = spt[j][i - 1] + spt[par[j][i - 1]][i - 1]; } for (int i = 0; i < N; dis[i++] = I); } int Query(int S, int X[], int T, int Y[]) { if (S < Q) { int ans = I; for (int i = 0; i < T; i++) for (int j = 0; j < S; j++) ans = min(ans, distance(Y[i] + 1, X[j] + 1)); return ans; } priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; for (int i = 0; i < S; i++) { dis[X[i] + 1] = 0; pq.push({0, X[i] + 1}); } while (!pq.empty()) { int d = pq.top().first, v = pq.top().second; pq.pop(); if (dis[v] < d) continue; for (auto [u, w]: adj[v]) if (dis[u] > d + w) { dis[u] = d + w; pq.push({d + w, u}); } } int ans = I; for (int i = 0; i < T; i++) ans = min(ans, dis[Y[i] + 1]); for (int i = 0; i < N; dis[i++] = I); return ans; }

Compilation message (stderr)

factories.cpp: In function 'void Init(long long int, long long int*, long long int*, long long int*)':
factories.cpp:42:38: error: 'C' was not declared in this scope
   42 |   adj[A[i] + 1].push_back({B[i] + 1, C[i]});
      |                                      ^
factories.cpp:42:43: error: no matching function for call to 'std::vector<std::pair<long long int, long long int> >::push_back(<brace-enclosed initializer list>)'
   42 |   adj[A[i] + 1].push_back({B[i] + 1, C[i]});
      |                                           ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from factories.cpp:1:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, long long int>]'
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<long long int, long long int>&'}
 1187 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, long long int>]'
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, long long int> >::value_type&&' {aka 'std::pair<long long int, long long int>&&'}
 1203 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
factories.cpp:43:43: error: no matching function for call to 'std::vector<std::pair<long long int, long long int> >::push_back(<brace-enclosed initializer list>)'
   43 |   adj[B[i] + 1].push_back({A[i] + 1, C[i]});
      |                                           ^
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from factories.cpp:1:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, long long int>]'
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<long long int, long long int>&'}
 1187 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, long long int>]'
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, long long int> >::value_type&&' {aka 'std::pair<long long int, long long int>&&'}
 1203 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~