有更好的方法的朋友记得评论喔
#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
typedef struct one_rel
{
int fp;
int sp;
} one_rel;
typedef vector<one_rel> one_rel_v;
typedef struct one_case
{
int pnum;
int relnum;
int qesnum;
one_rel_v rel_v;
one_rel_v qes_v;
} one_case;
typedef vector<one_case> one_case_v;
int main()
{
int casenum=0;
cin>>casenum;
one_case_v csese;
one_rel temp;
one_case scase;
while(casenum>0)
{
scase.qes_v.clear();
scase.rel_v.clear();
cin>>scase.pnum>>scase.relnum>>scase.qesnum;
int i=scase.relnum;
while(i>0)
{
cin>>temp.fp>>temp.sp;
scase.rel_v.push_back(temp);
i--;
}
i=scase.qesnum;
while(i>0)
{
cin>>temp.fp>>temp.sp;
scase.qes_v.push_back(temp);
i--;
}
csese.push_back(scase);
casenum--;
}
int i=1;
vector<one_case>::iterator caseiter=csese.begin();
for(caseiter;caseiter!=csese.end();caseiter++)
{
cout<<"Case "<<i<<":"<<endl;
vector<one_rel>::iterator quesiter=caseiter->qes_v.begin();
for(quesiter;quesiter!=caseiter->qes_v.end();quesiter++)
{
int count=0;
vector<one_rel>::iterator reliter=caseiter->rel_v.begin();
for(reliter;reliter!=caseiter->rel_v.end();reliter++)
{
int friend1;
if(reliter->fp==quesiter->fp)
{
friend1=reliter->sp;
}
else if(reliter->sp==quesiter->fp)
{
friend1=reliter->fp;
}
else
{
continue;
}
vector<one_rel>::iterator reliter1=caseiter->rel_v.begin();
for(reliter1;reliter1!=caseiter->rel_v.end();reliter1++)
{
if((reliter1->sp==friend1&&reliter1->fp==quesiter->sp)||(reliter1->fp==friend1&&reliter1->sp==quesiter->sp))
{
count++;
break;
}
}
}
cout<<count<<endl;
}
i++;
}
return 1;
}