【1149】Dangerous Goods Packaging (25分)

举报
野猪佩奇996 发表于 2022/01/23 01:04:01 2022/01/23
【摘要】 #include <iostream>#include <vector>#include <map>using namespace std;int main(){ int n,k,t1,t2; map<int,vector<int>> m; //建立int和vector数组的...

  
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. using namespace std;
  5. int main(){
  6. int n,k,t1,t2;
  7. map<int,vector<int>> m;
  8. //建立int和vector数组的映射map
  9. scanf("%d%d",&n,&k); //输入"不相容"组数n和要查询的组数k
  10. for(int i=0;i<n;i++){
  11. scanf("%d%d",&t1,&t2);//输入"不相容"的2个货物
  12. m[t1].push_back(t2);//把一个货物t2放入map的key为t1对应的vector中
  13. m[t2].push_back(t1);//把一个货物t1放入map的key为t2对应的vector中
  14. }
  15. while(k--){ //输入3次即查询3次
  16. int cnt,flag=0,a[100000]={0};
  17. scanf("%d",&cnt);
  18. vector<int> v(cnt);
  19. for(int i=0;i<cnt;i++){
  20. scanf("%d",&v[i]);//循环输入"不相容"的五位数
  21. a[v[i]]=1;//将对应五位数为下标的数组元素设为1
  22. }
  23. for(int i=0;i<v.size();i++)
  24. //例子中的size=cnt即一次查询的五位数个数
  25. for(int j=0;j<m[ v[i] ].size();j++)
  26. //注意循环内次数为map的key为某五位数的value大小(vector大小)
  27. if( a[ m[v[i]] [j] ]==1 ) {//注:判断的是---v[i]为key的map对应的value(是一个vector数组)的第j个元素
  28. flag=1;
  29. }
  30. printf("%s\n",flag?"No":"Yes");
  31. }
  32. system("pause");
  33. return 0;
  34. }

 

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/103772373

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。