---------------------------图论基础
邻接图
#include<iostream>
#include<cstring>
using namespaca std;
int main(){
int G[MAXN][MAXN];
memset(G,0,sizeof(G));
int m; //共有m组关系
cin>>m;
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b; //a与b有关系
G[b][a]=G[a][b]=1;
}
for(int i=1;i<=5;i++){
int sum=0;
for(int j=1;j<=5;j++){
if(G[i][j]==1&&G[j][i]==1){
sum++;
}
}
}
cout<<sum<<endl;
return 0;
}
邻接表
#include<iostream>
#include<cstring>
#include<vector>
using namespaca std;
int main(){
vector<int> G[11];
int m;
cin>>m;
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
for(int i=1;i<=10;i++){
cout<<i<<":"
for(int j=0;j<=G[i].size()<<j++){
cout<<G[i][j]<<" ";
}
cout<<endl;
}
return 0;