猿问

PAT甲级1142测试点2、3没有过


#include <iostream>

#include<cstdio>

#include<queue>

#include<vector>

#include<set>

#include<algorithm>

#include<map>

#include<string>

#include<cstring>

using namespace std;

//1142

const int maxn = 210;

int n, m, k, p, mmax, clique,mmin,sum;

int G[maxn][maxn],node[maxn];

int main() {

memset(G, 0, sizeof(G));

cin >> n >> m;

int a, b;

for (int i = 0; i < m; i++) {

cin >> a >> b;

G[a][b] = 1;

G[b][a] = 1;

}

cin >> k;

for (int i = 0; i < k; i++) {

memset(node, 0, sizeof(node));

mmax = 1, clique = 1;

mmin = 999;

cin >> p;

for (int i = 0; i < p; i++) {

cin >> node[i];

}

for(int i=0;i<p;i++)

for (int j = 0; j < p; j++) {

if (i != j) {

if (G[node[i]][node[j]] == 0) clique = 0;

}

}

for (int i = 0; i < n; i++) {

sum = 0;

for (int j = 0; j < p; j++)

if (G[i][node[j]] == 1) {

sum++;

if (sum == p)

mmax = 0;

}

}

if (mmax == 1 && clique == 1) cout << "Yes" << endl;

else if (mmax == 0 && clique == 1) cout << "Not Maximal" << endl;

else if (clique == 0) cout << "Not a Clique" << endl;

}

}


慕斯卡8886364
浏览 993回答 2
2回答
随时随地看视频慕课网APP
我要回答