pat 甲级1154 Vertex Coloring (25分)
代码:(水题,不分析了哈:)
#include <iostream>
#include <vector>
#include <set>
using namespace std;
struct edge
{
int vertex1,vertex2;
}temp;
vector<edge> g;
int main()
{
int n,m,k,id;
cin>>n>>m;
for(int i=0;i<m;++i)
{
cin>>temp.vertex1>>temp.vertex2;
g.push_back(temp);
}
cin>>k;
while(k--)
{
set<int> s;
vector<int> hash;
for(int i=0;i<n;++i)
{
cin>>id;
s.insert(id);
hash.push_back(id);
}
bool flag=true;
for(auto i:g) if(hash[i.vertex1]==hash[i.vertex2]) {flag=false;break;}
if(flag) printf("%d-coloring\n",(int)s.size());
else cout<<"No"<<endl;
}
return 0;
}