#include <iostream>
#include<set>
#include<vector>
struct edge{int a,b;};
using namespace std;
int main()
{
int nume,numv,numcase,t=0;
cin>>numv>>nume;
vector<edge> e(nume);
vector<int> v(numv);
set<int> vs;
for(int i=0;i<nume;i++)
cin>>e[i].a>>e[i].b;
cin>>numcase;
for(int i=0;i<numcase;i++)
{
for(int j=0;j<numv;j++)
{
cin>>v[j];
vs.insert(v[j]);
}
t=1;
for(int j=0;j<nume;j++)
{
if( v[e[j].a]==v[e[j].b]) { t=0; break;}
}
if(t){
cout<<vs.size()<<"-coloring"<<endl;
}else cout<<"No"<<endl;
vs.clear();
}
return 0;
}
1 接触了 set 独一无二的元素 也是红黑树实现 不能用[] 只能it iterater 访问
插入元素 insert()
2 set不要忘记clear() 不然答案就都错啦