#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
const int SIZE = 10005;
struct Lver {
int color;
} vers[SIZE];
vector<int> adj[SIZE];
int main() {
int N, M, v1, v2;
scanf("%d %d", &N, &M);
unordered_set<int> st;
for (int i = 0; i < M; i ++) {
scanf("%d %d", &v1, &v2);
adj[v1].push_back(v2);
adj[v2].push_back(v1);
}
int K;
scanf("%d", &K);
for (int i = 0; i < K; i ++) {
st.clear();
for (int j = 0; j < N; j ++) {
scanf("%d", &vers[j].color);
st.insert(vers[j].color);
}
bool flag = true;
for (int v = 0; v < N; v ++) {
for (int k = 0; k < adj[v].size(); k ++) {
int u = adj[v][k];
if (vers[v].color == vers[u].color) {
flag = false;
break;
}
}
if (!flag) break;
}
if (flag) printf("%d-coloring\n", st.size());
else printf("No\n");
}
return 0;
}
1154 Vertex Coloring (25分)
最新推荐文章于 2021-11-27 09:32:51 发布