1154 Vertex Coloring
2026/4/12 15:26:35 网站建设 项目流程

#include<iostream>
#include<set>
#include<vector>
using namespace std;

struct node{
int t1;
int t2;
};

int main(){
int n, m, k;
cin >> n >> m;

vector<node> v(m); // 储存所有边的信息
for(int i = 0; i < m; i++){
cin >> v[i].t1 >> v[i].t2;
}

cin >> k;

while(k--){
int a[10009] = {0}; // 存储每个顶点的颜色
bool flag = true;
set<int> se; // 存储所有颜色

//读取每个顶点的颜色
for(int i = 0; i < n; i++){
cin >> a[i];
se.insert(a[i]);
}

//检查每条边的两个端点颜色是否相同
for(int i = 0; i < m; i++){
if(a[v[i].t1] == a[v[i].t2]){
flag = false;
break;
}
}


if(flag){
cout << se.size() << "-coloring" << endl;
} else {
cout << "No" << endl;
}
}

return 0;
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询