#include #include #include using namespace std; const int N=1000; int n,m; vector >> g; // پشته شامل یال و وزن ‌انها vector > MST; // پشته‌ای که در آن درخت پوشای کمینه را خواهیم ریخت int parent [N]; int root (int a){ // هر مولفه‌ یک ریشه دارد که نماد آن است if(parent[a] ==a) return a; parent[a]=root(parent[a]); return root(parent[a]); } void Union (int a,int b){ // تابع ادغام parent[root(a)]=root(b); } void find_mst(){ sort (g.begin (), g.end ()); MST.clear(); for(int i=0; i> n>>m; g.clear(); for(int i=0; i>f>>t>>w; g.push_back(make_pair (w, make_pair (--f, --t))); /* * است n است ولی بازه معتبر راس ها در ورودی ۱ تا n-۱ بازه معتبر راس ها برای ما صفر تا * پس ما باید قبل از ذخیره یکی از آنها کم کنیم */ } find_mst(); }