版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaohaibo_/article/details/88060137
题意:给出图和图上每个点的颜色,问是否满足 图上所有边的两个端点的颜色不相同
#include <iostream>
#include <cstring>
#include <set>
#include <vector>
using namespace std;
const int maxn = 10010;
int N, M, K;
set<int> s;
vector<pair<int, int> > E;
int color[maxn];
int main()
{
ios::sync_with_stdio(false);
cin >> N >> M;
for (int i = 0; i < M; i ++ )
{
int a, b;
cin >> a >> b;
E.push_back({a, b});
}
cin >> K;
while (K --)
{
s.clear();
for (int i = 0; i < N; i ++ )
{
cin >> color[i];
s.insert(color[i]);
}
bool flag = true;
for (auto e : E)
{
if (color[e.first] == color[e.second])
{
flag = false;
break;
}
}
if(flag) cout << s.size() << "-coloring" << endl;
else cout << "No" << endl;
}
}