1154 Vertex Coloring (25 分)
#include <iostream>#include <vector>#include <set>#define maxn 10001using namespace std;int m,n;bool visited[maxn]= {false};int color[maxn];vector<int>v[maxn];int f=0...
·
#include <iostream>
#include <vector>
#include <set>
#define maxn 10001
using namespace std;
int m,n;
bool visited[maxn]= {false};
int color[maxn];
vector<int>v[maxn];
int f=0;
set<int>s;
void init()
{
s.clear();
f=0;
for(int i=0; i<n; ++i)
visited[i]=false;
}
int main()
{
cin>>n>>m;
for(int i=0; i<m; ++i)
{
int a,b;
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
int k;
cin>>k;
while(k--)
{
init();
for(int i=0; i<n; ++i)
{
cin>>color[i];
s.insert(color[i]);
}
int c=s.size();//K种颜色
for(int i=0; i<n; ++i)
{
for(int j=0; j<v[i].size(); ++j)
{
if(visited[v[i][j]]==true)
{
continue;
}
else
{
if(color[i]==color[v[i][j]])
{
f=1;
break;
}
}
}
if(f==1)
{
break;
}
}
if(f==1)
{
cout<<"No"<<endl;
}
else
{
cout<<c<<'-'<<"coloring"<<endl;
}
}
return 0;
}
更多推荐
已为社区贡献2条内容
所有评论(0)