PAT A1154

13次阅读

共计 750 个字符,预计需要花费 2 分钟才能阅读完成。

一道弱智的题。。我他妈的却废了这么久
就是个边判别的题我还用 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”);
}

正文完
 0