# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
164055 | 2019-11-17T08:34:12 Z | oolimry | 항공 노선도 (JOI18_airline) | C++14 | 컴파일 오류 |
0 ms | 0 KB |
#include "Alicelib.h" #include <bits/stdc++.h> using namespace std; void Alice( int n, int m, int A[], int B[] ){ int cnt = 0; vector<int> nums; for(int i = 0;i < 1024;i++){ int bits = 0; for(int j = 1;j < 1024;j *= 2){ if((i & j) != 0) bits++; } if(bits >= 2){ nums.push_back(i); } if(nums.size() == n) break; } typedef pair<int,int> ii; vector<ii> edges; for(int i = 0;i < m;i++){ edges.push_back(ii(A[i],B[i])); } int x = n+10; int y = n+11; int anchor[10]; for(int i = 0;i < 10;i++) anchor[i] = n+i; edges.push_back(ii(x,y)); for(int i = 0;i < 10;i++){ edges.push_back(ii(y,anchor[i])); } for(int i = 1;i < 9;i++){ edges.push_back(ii(anchor[0],anchor[i])); edges.push_back(ii(anchor[i],anchor[i+1])); } for(int i = 0;i < n;i++){ int k = nums[i]; for(int j = 0;j < 10;j++){ if((k & (1 << j)) != 0){ edges.push_back(ii(i,anchor[j])); } } } /* for(ii x : edges){ cout << x.first << " " << x.second << "\n"; } //*/ InitG(n+12,edges.size()); for(int i = 0;i < edges.size();i++){ MakeG(i,edges[i].first,edges[i].second); } //cout << "\n\n"; }
#include "Boblib.h" #include <bits/stdc++.h> using namespace std; struct hashii { size_t operator()(const pair<int,int>* x) const { return x.first ^ x.second; } }; void Bob( int n, int m, int C[], int D[] ){ int on = n - 12; vector<int> nums; typedef pair<int,int> ii; unordered_set<ii, hashii> edges; for(int i = 0;i < 1024;i++){ int bits = 0; for(int j = 1;j < 1024;j *= 2){ if((i & j) != 0) bits++; } if(bits >= 2){ nums.push_back(i); } if(nums.size() == on) break; } vector<int> adj[n]; for(int i = 0;i < m;i++){ adj[C[i]].push_back(D[i]); adj[D[i]].push_back(C[i]); //cout << C[i] << " " << D[i] << "\n"; edges.insert(ii(C[i],D[i])); edges.insert(ii(D[i],C[i])); } int x, y; for(int i = 0;i < n;i++){ if(adj[i].size() == 1){ x = i; y = adj[i][0]; break; } } //cout << x << "\n" << y << "\n"; vector<int> aa; for(int i = 0;i < n;i++){ if(i == x || i == y){ continue; } if(edges.find(ii(i,y)) != edges.end()){ aa.push_back(i); } } set<int> anchorSet; for(int k : aa){ //cout << k << " "; anchorSet.insert(k); } int anchor[10]; fill(anchor,anchor+10,-1); for(int i = 0;i < 10;i++){ int cnt = 0; for(int j = 0;j < 10;j++){ if(edges.find(ii(aa[i],aa[j])) != edges.end()){ cnt++; } } if(cnt == 8){ anchor[0] = aa[i]; } else if(cnt == 1){ anchor[9] = aa[i]; } } int cur = anchor[9]; for(int i = 9;i >= 2;i--){ for(int v : adj[cur]){ if(v != anchor[0] && anchorSet.find(v) != anchorSet.end()){ if(i == 9 || v != anchor[i+1]){ cur = v; anchor[i-1] = cur; break; } } } } bool extras[n]; fill(extras,extras+n,false); unordered_map<int,int> anchorMap; //cout << "\n"; for(int i =0 ;i < 10;i++){ //cout << anchor[i] << " "; extras[anchor[i]] = true; anchorMap[anchor[i]] = i; } extras[x] = true; extras[y] = true; //cout << "\n"; unordered_map<int,int> normalMap; for(int u = 0;u < n;u++){ int value = 0; if(extras[u]) continue; for(int v : adj[u]){ if(!extras[v]) continue; int bit = anchorMap[v]; value |= (1 << bit); } int pos = lower_bound(nums.begin(),nums.end(),value) - nums.begin(); normalMap[u] = pos; //cout << u << " " << pos << "\n"; } vector<ii> finalEdges; for(int i = 0;i < m;i++){ int u = C[i]; int v = D[i]; if(extras[u] || extras[v]) continue; finalEdges.push_back(ii(normalMap[u],normalMap[v])); } //cout << "\n"; //for(ii k : finalEdges) cout << k.first << " " << k.second << "\n"; InitMap(on, finalEdges.size()); for(ii k : finalEdges) MakeMap(k.first,k.second); }
Compilation message
Alice.cpp: In function 'void Alice(int, int, int*, int*)': Alice.cpp:16:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(nums.size() == n) break; ~~~~~~~~~~~~^~~~ Alice.cpp:54:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0;i < edges.size();i++){ ~~^~~~~~~~~~~~~~ Alice.cpp:6:6: warning: unused variable 'cnt' [-Wunused-variable] int cnt = 0; ^~~ Bob.cpp: In member function 'size_t hashii::operator()(const std::pair<int, int>*) const': Bob.cpp:8:18: error: request for member 'first' in 'x', which is of pointer type 'const std::pair<int, int>*' (maybe you meant to use '->' ?) return x.first ^ x.second; ^~~~~ Bob.cpp:8:28: error: request for member 'second' in 'x', which is of pointer type 'const std::pair<int, int>*' (maybe you meant to use '->' ?) return x.first ^ x.second; ^~~~~~ In file included from /usr/include/c++/7/bits/hashtable.h:35:0, from /usr/include/c++/7/unordered_map:47, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:117, from Bob.cpp:2: /usr/include/c++/7/bits/hashtable_policy.h: In instantiation of 'struct std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii>': /usr/include/c++/7/type_traits:143:12: required from 'struct std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> >' /usr/include/c++/7/type_traits:154:31: required from 'struct std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' /usr/include/c++/7/bits/unordered_set.h:98:63: required from 'class std::unordered_set<std::pair<int, int>, hashii>' Bob.cpp:16:28: required from here /usr/include/c++/7/bits/hashtable_policy.h:87:34: error: no match for call to '(const hashii) (const std::pair<int, int>&)' noexcept(declval<const _Hash&>()(declval<const _Key&>()))> ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ Bob.cpp:7:12: note: candidate: size_t hashii::operator()(const std::pair<int, int>*) const size_t operator()(const pair<int,int>* x) const { ^~~~~~~~ Bob.cpp:7:12: note: no known conversion for argument 1 from 'const std::pair<int, int>' to 'const std::pair<int, int>*' In file included from /usr/include/c++/7/bits/move.h:54:0, from /usr/include/c++/7/bits/nested_exception.h:40, from /usr/include/c++/7/exception:143, from /usr/include/c++/7/ios:39, from /usr/include/c++/7/istream:38, from /usr/include/c++/7/sstream:38, from /usr/include/c++/7/complex:45, from /usr/include/c++/7/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52, from Bob.cpp:2: /usr/include/c++/7/type_traits: In instantiation of 'struct std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >': /usr/include/c++/7/bits/unordered_set.h:98:63: required from 'class std::unordered_set<std::pair<int, int>, hashii>' Bob.cpp:16:28: required from here /usr/include/c++/7/type_traits:154:31: error: 'value' is not a member of 'std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> >' : public __bool_constant<!bool(_Pp::value)> ^~~~~~~~~~~~~~~~ In file included from /usr/include/c++/7/unordered_set:48:0, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118, from Bob.cpp:2: /usr/include/c++/7/bits/unordered_set.h: In instantiation of 'class std::unordered_set<std::pair<int, int>, hashii>': Bob.cpp:16:28: required from here /usr/include/c++/7/bits/unordered_set.h:98:63: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef __uset_hashtable<_Value, _Hash, _Pred, _Alloc> _Hashtable; ^~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:105:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::key_type key_type; ^~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:106:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::value_type value_type; ^~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:107:43: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::hasher hasher; ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:108:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::key_equal key_equal; ^~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:109:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::allocator_type allocator_type; ^~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:114:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::pointer pointer; ^~~~~~~ /usr/include/c++/7/bits/unordered_set.h:115:50: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::const_pointer const_pointer; ^~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:116:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::reference reference; ^~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:117:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::const_reference const_reference; ^~~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:118:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::iterator iterator; ^~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:119:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::const_iterator const_iterator; ^~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:120:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::local_iterator local_iterator; ^~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:121:57: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::const_local_iterator const_local_iterator; ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:122:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::size_type size_type; ^~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:123:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' typedef typename _Hashtable::difference_type difference_type; ^~~~~~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:282:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' operator=(initializer_list<value_type> __l) ^~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:375:2: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' emplace(_Args&&... __args) ^~~~~~~ /usr/include/c++/7/bits/unordered_set.h:419:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' insert(const value_type& __x) ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:423:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' insert(value_type&& __x) ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:478:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' insert(initializer_list<value_type> __l) ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:679:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' equal_range(const key_type& __x) ^~~~~~~~~~~ /usr/include/c++/7/bits/unordered_set.h:683:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >' equal_range(const key_type& __x) const ^~~~~~~~~~~ Bob.cpp: In function 'void Bob(int, int, int*, int*)': Bob.cpp:25:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(nums.size() == on) break; ~~~~~~~~~~~~^~~~~ Bob.cpp:33:29: error: no matching function for call to 'std::unordered_set<std::pair<int, int>, hashii>::insert(ii)' edges.insert(ii(C[i],D[i])); ^ In file included from /usr/include/c++/7/unordered_set:48:0, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118, from Bob.cpp:2: /usr/include/c++/7/bits/unordered_set.h:467:2: note: candidate: template<class _InputIterator> void std::unordered_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Value = std::pair<int, int>; _Hash = hashii; _Pred = std::equal_to<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >] insert(_InputIterator __first, _InputIterator __last) ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:467:2: note: template argument deduction/substitution failed: Bob.cpp:33:29: note: candidate expects 2 arguments, 1 provided edges.insert(ii(C[i],D[i])); ^ Bob.cpp:34:29: error: no matching function for call to 'std::unordered_set<std::pair<int, int>, hashii>::insert(ii)' edges.insert(ii(D[i],C[i])); ^ In file included from /usr/include/c++/7/unordered_set:48:0, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118, from Bob.cpp:2: /usr/include/c++/7/bits/unordered_set.h:467:2: note: candidate: template<class _InputIterator> void std::unordered_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Value = std::pair<int, int>; _Hash = hashii; _Pred = std::equal_to<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >] insert(_InputIterator __first, _InputIterator __last) ^~~~~~ /usr/include/c++/7/bits/unordered_set.h:467:2: note: template argument deduction/substitution failed: Bob.cpp:34:29: note: candidate expects 2 arguments, 1 provided edges.insert(ii(D[i],C[i])); ^ Bob.cpp:52:12: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'find' if(edges.find(ii(i,y)) != edges.end()){ ^~~~ Bob.cpp:52:35: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'end' if(edges.find(ii(i,y)) != edges.end()){ ^~~ Bob.cpp:68:13: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'find' if(edges.find(ii(aa[i],aa[j])) != edges.end()){ ^~~~ Bob.cpp:68:44: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'end' if(edges.find(ii(aa[i],aa[j])) != edges.end()){ ^~~