给出10000对冲突项目,
再给出含有1000个项目的链表,
要检测这个链表里面有没有冲突项目。
项目编号为五位数字
我直接莽 竟然过了。
先开一个100000大小的vector哈希数组,存放冲突项目,这里每对只存了一次,因为如果两个都在链表里的话,肯定会遍历到
开一个100000大小的bool数组
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
int N,M,K,temp;
bool vis[100000];
vector<int>w[100000];
int main(){
cin>>N>>M;
int a,b;
while(N--){
cin>>a>>b;
w[a].push_back(b);
}
while(M--){
cin>>K;
memset(vis,false,sizeof(vis));
while(K--){
cin>>temp;
vis[temp]=true;
}
bool flag=false;
for(int i=0;i<100000;i++){
if(vis[i]){
for(int j=0;j<w[i].size();j++){
if(vis[w[i][j]]){
flag=true;
break;
}
}
}
}
if(flag)
cout<<"No"<<endl;
else{
cout<<"Yes"<<endl;
}
}
return 0;
}
百度了一圈都是暴力解法,算了算了。看来我这个也差不多是标准答案了。。。