题目描述:
大学的同学来自全国各地,对于远离家乡步入陌生大学校园的大一新生来说,碰到老乡是多么激动的一件事,于是大家都热衷于问身边的同学是否与自己同乡,来自新疆的小赛尤其热衷。但是大家都不告诉小赛他们来自哪里,只是说与谁是不是同乡,从所给的信息中,你能告诉小赛有多少人确定是她的同乡吗?
链接: https://exercise.acmcoder.com/online/online_judge_ques?ques_id=9579&konwledgeId=137&opencustomeinput=true.
输入描述:
包含多组测试用例。对于每组测试用例:
第一行包括2个整数,N(1 <= N <= 1000),M(0 <= M <= N*(N-1)/2),代表现有N个人(用1~N编号)和M组关系;
在接下来的M行里,每行包括3个整数,a,b, c,如果c为1,则代表a跟b是同乡;如果c为0,则代表a跟b不是同乡;
已知1表示小赛本人。
输入样例:
3 1
2 3 1
5 4
1 2 1
3 4 0
2 5 1
3 2 1
代码
#include<stdio.h>
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int a,b,c;
int connect[n+1];
for(int j=0;j<n+1;j++)
{
connect[j]=-1;
}
connect[1]=0;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a<b&&c==1)
connect[b]=a;
if(a>b&&c==1)
connect[a]=b;
}
int scn=0;
for(int i=2;i<=n;i++)
{
int k=i;
while(k!=-1)
{
k=connect[k];
if(k==0)
{
scn++;
break;
}
}
}
printf("%d\n",scn);
}
return 0;
}
该题进阶版–认老乡
链接: https://exercise.acmcoder.com/online/online_judge_ques?ques_id=1683&konwledgeId=135.
题解:待补充