HDU 3527 SPY 水
来源:互联网 发布:游戏美工培训班 编辑:程序博客网 时间:2024/06/18 08:53
题意:
(老实说,我自己也读不太懂= =)大概意思就是,有3个队列;
A:要进入X国的人。
B:是Y国派过来的间谍。
C:曾经是X国派到Y国的间谍,也就是双重间谍。
题目中说了双重间谍和普通人都是不需要被抓的。因此就是让你找出,在B中且在A中,但不能在C中的人。
思路:
map一顿乱搞。
(虽说是道水题,不过也写了有些时间,反映了我在map,priority_queue以及pair的使用上还是不够熟练。)
code:
#include <cstdio>#include <cstdlib>#include <iostream>#include <cstring>#include <queue>#include <map>using namespace std;map <string, int> mp, mp2, mp3;map <string, int>::iterator it, it2;struct PP{ string str; int p; bool operator < (const PP & a) const { return p > a.p; }};void solve(){ priority_queue <PP> pq; for(it = mp2.begin(); it != mp2.end(); it++) { string tmp = it->first; if(mp.find(tmp) != mp.end() && mp3.find(tmp) == mp3.end()) pq.push((PP){it->first, it->second}); } if(pq.size() == 0) { cout<<"No enemy spy"<<endl; return ; } bool flag = false; while(!pq.empty()) { if(flag) cout<<" "<<pq.top().str; else { cout<<pq.top().str; flag = true; } pq.pop(); } cout<<endl;}int main(){ ios::sync_with_stdio(false); //freopen("in.txt", "r", stdin); int a, b, c; while(cin>>a>>b>>c) { mp.clear(); mp2.clear(); mp3.clear(); string str; for(int i = 0;i < a; i++) { cin>>str; mp[str] = 1; } for(int i = 0;i < b; i++) { cin>>str; mp2[str] = i; } for(int i = 0;i < c; i++) { cin>>str; mp3[str] = 1; } solve(); } return 0;}
0 0
- HDU 3527 SPY 水
- hdu-4468-Spy-KMP+贪心
- hdu 4274 Spy's Work
- hdu 4274 Spy's Work
- hdu 4468 spy kmp+dp
- Hdu 4274 Spy's Work
- hdu 4274 Spy's Work
- spy++
- spy++
- Spy++
- SPY
- SPY
- SPY
- SPY
- Spy
- HDU 4274 Spy's Work 树形dfs
- HDU 4274 spy work (树形DP)
- hdu 4274 Spy's Work DFS 贪心
- CC2530 DB EB
- Wireshark基本介绍和学习TCP三次握手
- Makefile 文件名操作函数
- Web.xml中Filter过滤器标签几个说明
- 《实战nginx》第7章-Nginx的Rewrite规则与实践
- HDU 3527 SPY 水
- Ubuntu14.04kylin安装QT
- windbg_cmd
- hogan 2014 donna "too low Meimou treatment
- 基于C++有限状态机的实现技术
- 一个用于白名单服务的布隆过滤器(bloom filter)
- 多次RST以及不同场景下的RST报文的差异
- 验证学号相关问题(异常)
- 提供android 5.0 AOSP源码下载