题目描述
给出一个无向带权图,顶点数为n,边数为m。
输入格式
第一行两个整数n,m,
接下来有m行,每行3个整数u,v,w,表示点u到点v有一条边,边权为w。
输出格式
第i行输出第点i的所有邻接点,按照点i到该点的边权由小到大输出,如果边权相等,则按照点的编号有小到大输出。
样例
样例输入
复制4 5
1 2 3
1 3 1
1 4 1
2 3 5
2 4 3
样例输出
复制3 4 2
1 4 3
1 2
1 2
_____________________________________________________________________________
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
#include<bits/stdc++.h>
using namespace std;
struct node{
int x;
int y;
};
int n,m,u,v,w;
vector<node> a[100005];
bool cmp(node a,node b){
if(a.y==b.y){
return a.x<b.x;
}
return a.y<b.y;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
a[u].push_back({v,w});
a[v].push_back({u,w});
}
for(int i=1;i<=n;i++){
sort(a[i].begin(),a[i].end(),cmp);
for(auto j:a[i])cout<<j.x<<" ";
cout<<endl;
}
}
标签:node,输出,int,题解,边权,样例,back,c++,带权
From: https://blog.csdn.net/hb_zhyu/article/details/136759505