原題連結
題解
說用k種顏色, 沒說用少於k種
code
#include<bits/stdc++.h>
using namespace std;
vector<int> G[505];
int vis[505]={0};
int color[505]={0};
int v,e,k,n;
int solve()
{
for(int i=1;i<=v;i++)
{
for(auto next:G[i])
{
if(color[i]==color[next]) return 0;
}
}
return 1;
}
int main()
{
cin>>v>>e>>k;
for(int i=1;i<=e;i++)
{
int x,y;
cin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
cin>>n;
while(n--)
{
set<int> q;
int maxs=0,mins=v+1;
for(int i=1;i<=v;i++)
{
cin>>color[i];
q.insert(color[i]);
maxs=max(maxs,color[i]);
mins=min(mins,color[i]);
}
if(mins>0&&maxs<=v&&q.size()==k&&solve()) puts("Yes");
else puts("No");
}
return 0;
}