4109:公共朋友-Common Friendsd

来源:互联网 发布:淘宝网牛仔半身裙 编辑:程序博客网 时间:2024/06/18 15:13


】题目:

描述:

小明和小红去参加party。会场中总共有n个人,这些人中有的是朋友关系,有的则相互不认识。朋友关系是相互的,即如果A是B的朋友,那么B也是A的朋友。小明和小红想知道其中某两个人有多少个公共的朋友。


第一行为一个正整数c,代表测试数据的个数。接下来是c组测试数据。
对于每组测试数据,第一行是三个数字n(2<=n<=100),m和k,分别表示会场中的人数,已知的朋友关系数目,问题的数目。接下来的m行,每行用两个数字i和j(1<=i,j<=n)表示了一个朋友关系,表示第i个人和第j个人是朋友关系。接下来的k行,每行用两个数字i和j(1<=i,j<=n)表示一个问题,请问第i个人和第j个人有多少公共的朋友。

输出:

对于第i组测试数据,首先输出一行”Case i:”,接下来得k行代表了k个问题,每行输出第i个人和第j个人有多少公共的朋友。

样例输入:


23 2 21 22 31 31 25 5 21 21 32 53 54 51 53 4
样例输出:
Case 1:10Case 2:21

评价:

  超级水题,没有做的意义=_=

代码:


#include <iostream>#include<string.h>#include <stdio.h>using namespace std;int main(){    //freopen("1.txt","r", stdin);    int c,n,m,k;    int ic,im,ik,i;    int peo1,peo2;    int cou;    int people[101][101]={0};    cin>>c;    for(ic=0;ic<c;ic++)    {        cin>>n>>m>>k;        for(im=1;im<=m;im++)        {            cin>>peo1>>peo2;            people[peo1][peo2]=people[peo2][peo1]=1;        }        cout<<"Case "<<(ic+1)<<":"<<endl;        for(ik=0;ik<k;ik++)        {            cou=0;            cin>>peo1>>peo2;            for(i=1;i<=n;i++)            {                if((people[peo1][i]==1)&&(people[peo2][i]==1)) cou++;            }            cout<<cou<<endl;        }        memset(people,0,sizeof(people));    }    return 0;}



0 0
原创粉丝点击