OpenJudge百炼习题解答(C++)--题4109:公共朋友-Common Friends
来源:互联网 发布:淘宝客在哪推广 编辑:程序博客网 时间:2024/05/29 08:02
题:
- 总时间限制:1000ms 内存限制:65536kB
- 描述
小明和小红去参加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个人有多少公共的朋友。
- 样例输入:
- 样例输出:
解:
#include<stdio.h>int FindCommonF(int K1,int K2,int ia[100][101],int ja[100][101],int Nu,int c);int main(){int C;int n;scanf("%d",&C);int k[C];int m[C];int i[100][101];int j[100][101];int InputK1[C][101];int InputK2[C][101];for(int hh=0;hh<C;hh++){for(int uu=0;uu<101;uu++){j[hh][uu]=0;i[hh][uu]=0;InputK1[hh][uu]=0;InputK2[hh][uu]=0;}}for(int a=0;a<C;a++){ scanf("%d %d %d",&n,&m[a],&k[a]); int ii=0;for(ii=0;ii<m[a];ii++){scanf("%d %d",&i[a][ii],&j[a][ii]);}int jj=0;for( jj=0;jj<k[a];jj++){scanf("%d %d",&InputK1[a][jj],&InputK2[a][jj]);}}for(int b=0;b<C;b++){printf("Case %d:\n",b+1);for(int kk=0;kk<k[b];kk++){printf("%d\n",FindCommonF(InputK1[b][kk],InputK2[b][kk],i,j,m[b],b));}}return 0;}int FindCommonF(int K1,int K2,int ia[100][101],int ja[100][101],int Nu,int c){int C1=0;int C2=0;int Count=0;int CoF1[101];int CoF2[101];for(int q=0;q<101;q++){CoF1[q]=0;CoF2[q]=0;}for(int i=0;i<Nu;i++){if(ia[c][i]==K1&&ja[c][i]!=0){CoF1[C1]=ja[c][i];C1++;}if(ja[c][i]==K1&&ia[c][i]!=0){CoF1[C1]=ia[c][i];C1++;}if (ia[c][i]==K2&&ja[c][i]!=0){CoF2[C2]=ja[c][i];C2++;}if(ja[c][i]==K2&&ia[c][i]!=0){CoF2[C2]=ia[c][i];C2++;} } for(int n=0;n<C1;n++) { for(int k=0;k<C2;k++) { if(CoF1[n]==CoF2[k]) { Count++; } } }return Count;}
推荐文章:那些年,做的几个应用
1 0
- OpenJudge百炼习题解答(C++)--题4109:公共朋友-Common Friends
- OpenJudge百炼习题解答(C++)--题2000:金币
- OpenJudge百炼习题解答(C++)--题4010:2011
- OpenJudge百炼习题解答(C++)--题3858:和数
- OpenJudge百炼习题解答(C++)--题4108:羚羊数量-Number Of Antelope
- OpenJudge百炼习题解答(C++)--题4110:圣诞老人的礼物-Santa Clau’s Gifts
- OpenJudge百炼习题解答(C++)--题4085:数组去重排序
- OpenJudge百炼习题解答(C++)--题4022:买房子
- OpenJudge百炼习题解答(C++)--题4045:与3和5无关的数
- OpenJudge百炼习题解答(C++)--题4074:积水量
- OpenJudge百炼习题解答(C++)--题4072:判断多个点是否在同一直线
- OpenJudge百炼习题解答(C++)--题2704:竞赛评分
- OpenJudge百炼习题解答(C++)--题2690:首字母大写
- OpenJudge百炼习题解答(C++)--题3142:球弹跳高度的计算
- OpenJudge百炼习题解答(C++)--题1936:全在其中
- OpenJudge百炼习题解答(C++)--题4040:买书问题
- OpenJudge百炼习题解答(C++ )--题4112:情报破译-Cryptanalysis
- POJ 4109:公共朋友-Common Friends
- Dll注入技术之ComRes注入
- Edu CF #R8(ABC)
- Dll注入技术之注册表注入
- Experimental Educational Round: VolBIT Formulas Blitz(J)打表找规律
- 1007. Maximum Subsequence Sum (25)
- OpenJudge百炼习题解答(C++)--题4109:公共朋友-Common Friends
- hdu 3001 Travelling 状压dp
- JQuery学习—JQuery的Validform学习
- OpenGL ES 学习教程(十) Light casters 之 Spot Light (聚光灯)
- macbook pro安装linux系统
- HDU 5630 Rikka with Chess
- VS2015--win32工程配置的一些想法之warning LNK4042: 对象被多次指定;已忽略多余的指定
- 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾
- UVA 12658 模拟