#590
Se dă un graf neorientat ponderat conex cu n
vârfuri și m
muchii – în care fiecare muchie are asociat un cost, număr natural strict pozitiv. Folosind algoritmul lui Prim, determinați un arbore parțial de cost minim, cu rădăcina în vârful 1
.
Problema | Prim | Operații I/O |
![]() prim.in /prim.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #55814619 | Utilizator | |
Fișier | prim.cpp | Dimensiune | 1.10 KB |
Data încărcării | 27 Ianuarie 2025, 15:57 | Scor / rezultat | Eroare de compilare |
prim.cpp: In function 'void prim(int)': prim.cpp:34:17: error: no matching function for call to 'std::priority_queue<std::pair<int, std::pair<int, int> >, std::vector<int>, std::greater<std::pair<int, std::pair<int, int> > > >::push(std::pair<int, std::pair<int, int> >&)' q.push(i); ^ prim.cpp:34:17: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:85, from prim.cpp:1: /usr/include/c++/4.8/bits/stl_queue.h:496:7: note: void std::priority_queue<_Tp, _Sequence, _Compare>::push(const value_type&) [with _Tp = std::pair<int, std::pair<int, int> >; _Sequence = std::vector<int>; _Compare = std::greater<std::pair<int, std::pair<int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = int] push(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:496:7: note: no known conversion for argument 1 from 'std::pair<int, std::pair<int, int> >' to 'const value_type& {aka const int&}' /usr/include/c++/4.8/bits/stl_queue.h:504:7: note: void std::priority_queue<_Tp, _Sequence, _Compare>::push(std::priority_queue<_Tp, _Sequence, _Compare>::value_type&&) [with _Tp = std::pair<int, std::pair<int, int> >; _Sequence = std::vector<int>; _Compare = std::greater<std::pair<int, std::pair<int, int> > >; std::priority_queue<_Tp, _Sequence, _Compare>::value_type = int] push(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:504:7: note: no known conversion for argument 1 from 'std::pair<int, std::pair<int, int> >' to 'std::priority_queue<std::pair<int, std::pair<int, int> >, std::vector<int>, std::greater<std::pair<int, std::pair<int, int> > > >::value_type&& {aka int&&}' prim.cpp:38:44: error: request for member 'second' in 'q.std::priority_queue<_Tp, _Sequence, _Compare>::top<std::pair<int, std::pair<int, int> >, std::vector<int>, std::greater<std::pair<int, std::pair<int, int> > > >()', which is of non-class type 'const value_type {aka const int}' while ( !q.empty() && !sel[q.top().second.second] ) ^ prim.cpp:43:9: error: 'k' was not declared in this scope k=q.top().second.second; ^ prim.cpp:43:19: error: request for member 'second' in 'q.std::priority_queue<_Tp, _Sequence, _Compare>::top<std::pair<int, std::pair<int, int> >, std::vector<int>, std::greater<std::pair<int, std::pair<int, int> > > >()', which is of non-class type 'const value_type {aka const int}' k=q.top().second.second; ^ prim.cpp:44:9: error: 'c' was not declared in this scope c=q.top().first; ^ prim.cpp:44:19: error: request for member 'first' in 'q.std::priority_queue<_Tp, _Sequence, _Compare>::top<std::pair<int, std::pair<int, int> >, std::vector<int>, std::greater<std::pair<int, std::pair<int, int> > > >()', which is of non-class type 'const value_type {aka const int}' c=q.top().first; ^ prim.cpp:49:30: error: no matching function for call to 'std::vector<std::pair<int, std::pair<int, int> > >::push_back(const value_type&)' sol.push_back(q.top()); ^ prim.cpp:49:30: note: candidates are: In file included from /usr/include/c++/4.8/vector:64:0, from /usr/include/c++/4.8/bits/random.h:34, from /usr/include/c++/4.8/random:50, from /usr/include/c++/4.8/bits/stl_algo.h:65, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from prim.cpp:1: /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<int, std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, std::pair<int, int> > >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, std::pair<int, int> >] push_back(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: no known conversion for argument 1 from 'const value_type {aka const int}' to 'const value_type& {aka const std::pair<int, std::pair<int, int> >&}' /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, std::pair<int, int> > >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, std::pair<int, int> >] push_back(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: no known conversion for argument 1 from 'const value_type {aka const int}' to 'std::vector<std::pair<int, std::pair<int, int> > >::value_type&& {aka std::pair<int, std::pair<int, int> >&&}' In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from prim.cpp:1: /usr/include/c++/4.8/bits/stl_heap.h: In instantiation of 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; _Distance = int; _Tp = int; _Compare = std::greater<std::pair<int, std::pair<int, int> > >]': /usr/include/c++/4.8/bits/stl_heap.h:448:15: required from 'void std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; _Compare = std::greater<std::pair<int, std::pair<int, int> > >]' /usr/include/c++/4.8/bits/stl_queue.h:411:48: required from 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&) [with _Tp = std::pair<int, std::pair<int, int> >; _Sequence = std::vector<int>; _Compare = std::greater<std::pair<int, std::pair<int, int> > >]' prim.cpp:12:48: required from here /usr/include/c++/4.8/bits/stl_heap.h:313:40: error: no match for call to '(std::greater<std::pair<int, std::pair<int, int> > >) (int&, int&)' *(__first + (__secondChild - 1)))) ^ In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from prim.cpp:1: /usr/include/c++/4.8/bits/stl_function.h:222:12: note: candidate is: struct greater : public binary_function<_Tp, _Tp, bool> ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: bool std::greater<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = std::pair<int, std::pair<int, int> >] operator()(const _Tp& __x, const _Tp& __y) const ^ /usr/include/c++/4.8/bits/stl_function.h:225:7: note: no known conversion for argument 1 from 'int' to 'const std::pair<int, std::pair<int, int> >&'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Prim face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.