一道弱智的题。。我他妈的却废了这么久
就是个边判别的题我还用dfs和bfs。。。之后又忽律颜色给定的范围,范围根本不得而知,结果在一个case上卡了很久,直接用set去重就完美解决。。。
我
是
弱
智
啊
!!
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
using namespace std;
using std::set;
const int maxn=10010;
struct edge{
int a;
int b;
}table[maxn];
int query[maxn];
int hashtable[maxn]={0};
int main(){
int n,m;
scanf("%d",&n);
scanf("%d",&m);
int a,b;
for(int i=0;i<m;i++){
scanf("%d%d",&table[i].a,&table[i].b);
}
int k;
scanf("%d",&k);
for(int i=0;i<k;i++){
set<int>color;
for(int j=0;j<n;j++){
scanf("%d",&query[j]);
color.insert(query[j]);
}
bool flag=true;
for(int i=0;i<m;i++){
if(query[table[i].a]==query[table[i].b]){
flag=false;
break;
}
}
if(flag){
printf("%d-coloring\n",color.size());
}else{
printjf("No\n");
}
}
system("pause");
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。