#include<iostream>
#include<cstdio>
#include<cstring>
#define M 30
using namespace std;
int graph[M][M],times,color[M],hv;
void DFS_Visit(int);
int main()
{
char inp[5];
int t,x,y,i;
freopen("in.txt","r",stdin);
scanf("%d\n\n",&t);
while(t--)
{
gets(inp);
hv=inp[0]-65;
memset(graph,0,sizeof(graph));
memset(color,0,sizeof(color));
while(gets(inp))
{
for(i=0;inp[i];i++);
if(!i)break;
x=inp[0]-65,y=inp[1]-65;
graph[x][y]=graph[y][x]=1;
}
times=0;
for(i=0;i<=hv;i++)
{
if(color[i]==0)
{
DFS_Visit(i);
times++;
}
}
if(t)
printf("%d\n\n",times);
else
printf("%d\n",times);
}
return 0;
}
void DFS_Visit(int u)
{
int i;
color[u]=1;
for(i=0;i<=hv;i++)
if(graph[u][i]&&color[i]==0)
DFS_Visit(i);
color[u]=2;
}
#include<cstdio>
#include<cstring>
#define M 30
using namespace std;
int graph[M][M],times,color[M],hv;
void DFS_Visit(int);
int main()
{
char inp[5];
int t,x,y,i;
freopen("in.txt","r",stdin);
scanf("%d\n\n",&t);
while(t--)
{
gets(inp);
hv=inp[0]-65;
memset(graph,0,sizeof(graph));
memset(color,0,sizeof(color));
while(gets(inp))
{
for(i=0;inp[i];i++);
if(!i)break;
x=inp[0]-65,y=inp[1]-65;
graph[x][y]=graph[y][x]=1;
}
times=0;
for(i=0;i<=hv;i++)
{
if(color[i]==0)
{
DFS_Visit(i);
times++;
}
}
if(t)
printf("%d\n\n",times);
else
printf("%d\n",times);
}
return 0;
}
void DFS_Visit(int u)
{
int i;
color[u]=1;
for(i=0;i<=hv;i++)
if(graph[u][i]&&color[i]==0)
DFS_Visit(i);
color[u]=2;
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.