邻接矩阵表示法创建无向图
采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度。
输入格式:
输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。 输入第二行为顶点的信息,每个顶点只能用一个字符表示。 依次输入j行,每行输入一条边依附的顶点。
输出格式:
依次输出各顶点的度,行末没有最后的空格。
输入样例:
5 7
ABCDE
AB
AD
BC
BE
CD
CE
DE
输出样例:
2 3 3 3 3
零阶矩阵法
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 10000;
int n,m;
int g[N][N];
char str[15],st[3];
int find(int x)
{
int cont=0;
for(int i=0;i<n;i++)
{
int y=str[i];
if(g[x][y]==1)
cont++;
}
return cont;
}
int main()
{
cin>>n>>m;
cin>>str;
for(int i=0;i<m;i++)
{
cin>>st;
int x=st[0];
int y=st[1];
g[x][y]=1;
g[y][x]=1;
}
cout<<find(str[0]);
for(int i=1;i<n;i++)
cout<<' '<<find(str[i]);
return 0;
}
考试就该这么作做
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
map<char,int> q;
int n,m;
int main()
{
cin>>n>>m;
char str[15],st[3];
cin>>str;
for(int i=0;i<m;i++)
{
cin>>st;
q[st[0]]++;
q[st[1]]++;
}
cout<<q[str[0]];
for(int i=1;i<n;i++)
cout<<' '<<q[str[i]];
return 0;
}