Advertisement
Tooster

MST ??? maybe

May 27th, 2015
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <queue>
  4. #include <vector>
  5. #include <utility>
  6.  
  7.  
  8. using namespace std;
  9.  
  10. int main(){
  11.  
  12. typedef vector< pair<int, int> > vpii;
  13. typedef pair<int, int> pii;
  14.  
  15. int pts, links;
  16. cin >> pts >> links;
  17.  
  18. vpii *graf = new vpii[pts + 1];
  19.  
  20. int a, b, w;
  21. while (links--){
  22. cin >> a >> b >> w;
  23. graf[a].push_back(make_pair(w, b));
  24. }
  25.  
  26. priority_queue<pii, vector<pii>, greater<pii> > kolejka;
  27.  
  28. while (!graf[1].empty()){
  29. kolejka.push(graf[1].back()); //dodaje do kolejki priorytetowej krawędzie
  30. graf[1].pop_back(); //zdejmuje z grafu wierzchołki
  31. }
  32. int rozmiar = 1;
  33. int waga = 0;
  34. int doPorzetworzenia;
  35. while (rozmiar != pts){
  36. pii sad = kolejka.top(); //zdejmuje wierzchołek do przetworzenia//
  37. kolejka.pop(); //=====================================//
  38. waga += sad.first;
  39. doPorzetworzenia = sad.second;
  40. while (!graf[doPorzetworzenia].empty()){
  41. kolejka.push(graf[doPorzetworzenia].back());
  42. graf[doPorzetworzenia].pop_back();
  43. }
  44. rozmiar++;
  45. }
  46. cout << waga;
  47. system("pause");
  48. }
  49.  
  50. /*
  51. 6 10
  52. 1 2 2
  53. 1 6 1
  54. 1 5 3
  55. 4 1 5
  56. 2 6 2
  57. 2 3 5
  58. 4 3 4
  59. 3 5 4
  60. 4 5 4
  61. 5 6 3
  62. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement