这个题没看懂题目,一定要在纸上画一下图,这次直接做了,结果错了。。
又花了20分钟重新做,太晚了状态不好。错了两个没写输入,和输入参数写错。
#include<bits/stdc++.h>
using namespace std;
bool ll[201][201];
int n;
int isclique(vector<int> a){
for(int i=0;i<a.size();i++){
for(int j=i+1;j<a.size();j++){
if(ll[a[i]][a[j]]==false){
return -1;
}
}
}
for(int j=1;j<=n;j++){
for(int i=0;i<a.size();i++){
if(ll[j][a[i]]==false)break;
if(i==a.size()-1)return 0;
}
}
return 1;
}
int main(){
int m,a,b;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a>>b;
ll[a][b]=true;
ll[b][a]=true;
}
int k;
cin>>k;
for(int i=0;i<k;i++){
vector<int> temp;
temp.clear();
int num,t;
cin>>num;
for(int i=0;i<num;i++){
cin>>t;
temp.push_back(t);
}
int tag=isclique(temp);
if(tag==-1)printf("Not a Clique\n");
if(tag==0)printf("Not Maximal\n");
if(tag==1)printf("Yes\n");
}
return 0;
}