제출 #1257463

#제출 시각아이디문제언어결과실행 시간메모리
1257463M_SH_OBridges (APIO19_bridges)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> //#include "rainbow.h" #define ll long long #define ll1 long long #define ull unsigned long long #define dou long double #define str string #define vll vector<ll> #define vi vector<int> #define pll pair<ll, ll> #define vpll vector<pll> #define vbool vector<bool> #define vstr vector<str> #define vvll vector<vll> #define pb push_back #define pf push_front #define endl "\n" #define fr first #define se second // #define sortcmp(a) sort(a.begin(), a.end(), cmp) #define sort(a) sort(a.begin(), a.end()) #define reverse(a) reverse(a.begin(), a.end()) #define speed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) #define ordered_set tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> using namespace std; //using namespace __gnu_pbds; const ll INF = 1e18; const int lg = 20; mt19937 rng(time(0)); ll randll(ll l, ll r){ return uniform_int_distribution<ll>(l, r)(rng); } vll p, s; vector<pair<pll, ll>> st; ll find(ll v){ if(p[v] == v) return v; return find(p[v]); } void unite(ll a, ll b){ a = find(a); b = find(b); if(a == b) return; if(s[a] < s[b]){ st.pb({{a, b}, 1}); p[a] = b; s[b] += s[a]; } else{ st.pb({{a, b}, 2}); p[b] = a; s[a] += s[b]; } } void erase(){ pair<pll, ll> p1 = st.back(); st.pop_back(); if(p1.se == 1){ s[p1.fr.se] -= s[p1.fr.fr]; p[p1.fr.fr] = p1.fr.fr; } else{ s[p1.fr.fr] -= s[p1.fr.se]; p[p1.fr.se] = p1.fr.se; } } int main(){ speed; ll n, m; cin >> n >> m; vector<pair<ll, pll>> v, qu; s.resize(n+7, 1); p.resize(n+7); for(int i = 1; i <= n; i ++){ p[i] = i; } vll k(m); for(int i =0 ; i < m; i ++){ ll a, b, c; cin >> a >> b >> c; v.pb({c, {a, b}}); k[i] = c; } ll q; cin >> q; for(int i = 0; i < q; i ++){ ll x, a, b; cin >> x >> a >> b; qu.pb({x, {a, b}}); } ll baze = sqrt(q); vll res(q, 1); set<ll> s1; for(int i = 0; i < q; i ++){ if(i % baze == 0){ vpll q1; for(int j = i; j < i+baze; i ++){ if(qu[j].fr == 1) s1.insert(qu[j].se.fr); else{ q1.pb({qu[j].se.se, j}); } } vpll v1; p.clear(); s.clear(); p.resize(m+7); s.resize(m+7, 1); for(int j = 0; j < m; j ++){ p[j] = j; if(s1.find(j) == s1.end()) v1.pb({v[j].c, j}); } sort(v1); sort(q1); reverse(v1); reverse(q1); ll l = 0; for(auto i1 : v1){ while(l < q1.size()){ if(q1[l].fr <= i1.fr) break; set<ll> s2; for(int j = i; j < i+baze; j ++){ } res[q1[l].se] = s[find(qu[q1[l].se].se.fr)]; l ++; } unite(v[i1.se].se.fr, v[i1.se].se.se); } while(l < q){ res[qu[l].se.se] = s[find(qu[l].se.fr)]; l ++; } } } sort(qu); sort(v); reverse(v); reverse(qu); for(int i = 0; i < q; i ++){ cout << res[i] << endl; } }

컴파일 시 표준 에러 (stderr) 메시지

bridges.cpp: In function 'int main()':
bridges.cpp:127:56: error: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >, std::pair<long long int, std::pair<long long int, long long int> > >::value_type' {aka 'struct std::pair<long long int, std::pair<long long int, long long int> >'} has no member named 'c'
  127 |                 if(s1.find(j) == s1.end()) v1.pb({v[j].c, j});
      |                                                        ^
bridges.cpp:127:49: error: no matching function for call to 'std::vector<std::pair<long long int, long long int> >::push_back(<brace-enclosed initializer list>)'
  127 |                 if(s1.find(j) == s1.end()) v1.pb({v[j].c, j});
      |                                            ~~~~~^~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:67,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from bridges.cpp:1:
/usr/include/c++/11/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++/11/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++/11/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++/11/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)
      |                 ~~~~~~~~~~~~~^~~