【1149】Dangerous Goods Packaging (25分)
【摘要】
#include <iostream>#include <vector>#include <map>using namespace std;int main(){ int n,k,t1,t2; map<int,vector<int>> m; //建立int和vector数组的...
-
#include <iostream>
-
#include <vector>
-
#include <map>
-
using namespace std;
-
int main(){
-
int n,k,t1,t2;
-
map<int,vector<int>> m;
-
//建立int和vector数组的映射map
-
scanf("%d%d",&n,&k); //输入"不相容"组数n和要查询的组数k
-
for(int i=0;i<n;i++){
-
scanf("%d%d",&t1,&t2);//输入"不相容"的2个货物
-
m[t1].push_back(t2);//把一个货物t2放入map的key为t1对应的vector中
-
m[t2].push_back(t1);//把一个货物t1放入map的key为t2对应的vector中
-
}
-
while(k--){ //输入3次即查询3次
-
int cnt,flag=0,a[100000]={0};
-
scanf("%d",&cnt);
-
vector<int> v(cnt);
-
for(int i=0;i<cnt;i++){
-
scanf("%d",&v[i]);//循环输入"不相容"的五位数
-
a[v[i]]=1;//将对应五位数为下标的数组元素设为1
-
}
-
for(int i=0;i<v.size();i++)
-
//例子中的size=cnt即一次查询的五位数个数
-
for(int j=0;j<m[ v[i] ].size();j++)
-
//注意循环内次数为map的key为某五位数的value大小(vector大小)
-
if( a[ m[v[i]] [j] ]==1 ) {//注:判断的是---v[i]为key的map对应的value(是一个vector数组)的第j个元素
-
flag=1;
-
}
-
printf("%s\n",flag?"No":"Yes");
-
}
-
system("pause");
-
return 0;
-
}
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/103772373
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)