#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
int G[210][210];
int Nv,Ne,M;
int A[210];
int father[210];
int counte(int x)
{
int result=0;
int add=0;
while(x>0)
{
result+=add;
add++;
x--;
}
return result;
}
int main()
{
scanf("%d%d",&Nv,&Ne);
memset(G,-1,sizeof(G));
for(int i=0;i<Ne;i++)
{
int c1,c2;
scanf("%d%d",&c1,&c2);
G[c1][c2]=1;
G[c2][c1]=1;
}
scanf("%d",&M);
for(int i=0;i<M;i++)
{
memset(father,-1,sizeof(father));
int c;
scanf("%d",&c);
for(int j=0;j<c;j++)
{
scanf("%d",&A[j]);
father[A[j]]=A[0];
}
bool flag1=true;
bool flag2=false;
bool flag3=false;
for(int j=0;j<c;j++)
{
for(int k=j+1;k<c;k++)
{
if(G[A[j]][A[k]]<0)
{
flag1=false;
}
}
}
if(flag1)
{
for(int j=1;j<=Nv;j++)
{
if(father[j]!=A[0])
{
flag3=true;
for(int k=0;k<c;k++)
{
if(G[A[k]][j]<0)
{
flag3=false;
break;
}
}
}
if(flag3==true)
{
flag2=true;
break;
}
}
}
if(flag1&&!flag2)
{
printf("Yes\n");
}
if(flag1&&flag2)
{
printf("Not Maximal\n");
}
if(!flag1)
{
printf("Not a Clique\n");
}
}
system("pause");
return 0;
}
甲1142 Maximal Clique (25)
猜你喜欢
转载自blog.csdn.net/yhy489275918/article/details/80486091
今日推荐
周排行