有向带权图操作
2026-04-19 15:44:36
发布于:广东
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int e[110][110];
int ina[110],outa[110];
int main(){
int n,m,t;
cin >> n >> m >> t;
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
e[i][j] = -1 ;
}
}
for(int i=1;i<=m;i++){
int u,v,w;
cin >> u >> v >> w;
e[u][v] = w;
}
while(t--){
int op;cin >> op;
if(op==1){
int x;cin >> x;
int cnt=0;
for(int i=0;i<n;i++){
if(e[i][x]!=-1) cnt++;
}
cout << cnt << endl;
}else if(op==2){
int x;cin >> x;
int cnt=0;
for(int i=0;i<n;i++){
if(e[i][x]!=-1) cnt++;
if(e[x][i]!=-1) cnt++;
}
cout<<cnt<<endl;
}else if(op==3){
int u,v;cin >> u >> v;
if(e[u][v]==-1) cout << -1 << endl;
else cout << e[u][v] << endl;
}else if(op==4){
int x;cin >> x;
for(int i=0;i<=n-1;i++){
if(e[x][i]!= -1){
cout << i << " " << e[x][i] << endl;
}
}
}
}
return 0;
}
这里空空如也


有帮助,赞一个