hdu 5233 Gunner II (map的简单用法)
2016-03-06 12:51
246 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5233
Total Submission(s): 1752 Accepted Submission(s): 639
[align=left]Problem Description[/align]
Long long ago, there was a gunner whose name is Jack. He likes to go hunting very much. One day he go to the grove. There are n birds and n trees. The i-th bird stands on the top of the i-th tree. The trees stand in straight line from left to the right. Every tree has its height. Jack stands on the left side of the left most tree. When Jack shots a bullet in height H to the right, the nearest bird which stands in the tree with height H will falls.
Jack will shot many times, he wants to know which bird will fall during each shot.
[align=left]Input[/align]
There are multiple test cases (about 5), every case gives n, m in the first line, n indicates there are n trees and n birds, m means Jack will shot m times.
In the second line, there are n numbers h[1],h[2],h[3],…,h
which describes the height of the trees.
In the third line, there are m numbers q[1],q[2],q[3],…,q[m] which describes the height of the Jack’s shots.
Please process to the end of file.
[Technical Specification]
All input items are integers.
1<=n,m<=100000(10^5)
1<=h[i],q[i]<=1000000000(10^9)
[align=left]Output[/align]
For each q[i], output an integer in a single line indicates the id of bird Jack shots down. If Jack can’t shot any bird, just output -1.
The id starts from 1.
[align=left]Sample Input[/align]
5 5
1 2 3 4 1
1 3 1 4 2
[align=left]Sample Output[/align]
1
3
5
4
2
Hint
Huge input, fast IO is recommended.
[align=left]Source[/align]
BestCoder Round #42
题目大意:上面一排数字,下面一排数字,找出下面一排数字在上面一排中的位置,如果有多个,输出优先靠左边的,然后删掉其数字。如果不存在输出-1
Gunner II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1752 Accepted Submission(s): 639
[align=left]Problem Description[/align]
Long long ago, there was a gunner whose name is Jack. He likes to go hunting very much. One day he go to the grove. There are n birds and n trees. The i-th bird stands on the top of the i-th tree. The trees stand in straight line from left to the right. Every tree has its height. Jack stands on the left side of the left most tree. When Jack shots a bullet in height H to the right, the nearest bird which stands in the tree with height H will falls.
Jack will shot many times, he wants to know which bird will fall during each shot.
[align=left]Input[/align]
There are multiple test cases (about 5), every case gives n, m in the first line, n indicates there are n trees and n birds, m means Jack will shot m times.
In the second line, there are n numbers h[1],h[2],h[3],…,h
which describes the height of the trees.
In the third line, there are m numbers q[1],q[2],q[3],…,q[m] which describes the height of the Jack’s shots.
Please process to the end of file.
[Technical Specification]
All input items are integers.
1<=n,m<=100000(10^5)
1<=h[i],q[i]<=1000000000(10^9)
[align=left]Output[/align]
For each q[i], output an integer in a single line indicates the id of bird Jack shots down. If Jack can’t shot any bird, just output -1.
The id starts from 1.
[align=left]Sample Input[/align]
5 5
1 2 3 4 1
1 3 1 4 2
[align=left]Sample Output[/align]
1
3
5
4
2
Hint
Huge input, fast IO is recommended.
[align=left]Source[/align]
BestCoder Round #42
题目大意:上面一排数字,下面一排数字,找出下面一排数字在上面一排中的位置,如果有多个,输出优先靠左边的,然后删掉其数字。如果不存在输出-1
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <map> #include <vector> using namespace std; int h[100005], q[100005]; map<int,vector<int> > mp; int main () { int m, n; while(~scanf("%d %d", &n, &m)) { mp.clear(); for(int i=1; i<=n; i++) { scanf("%d", &h[i]); } for(int i=n; i>=1; i--) { mp[h[i]].push_back(i); } for(int i=1; i<=m; i++) { scanf("%d", &q[i]); if(mp[q[i]].size()>=1) { printf("%d\n",mp[q[i]].back()); mp[q[i]].pop_back(); } else printf("-1\n"); } } return 0; }
相关文章推荐
- Linux 进程切换
- 认识数据库系统
- HDU 1847 Good Luck in CET-4 Everybody!
- UITableView性能优化
- PAT1042字符统计
- 如何通过变量去调用对应的函数
- 第四章 第二节——基本途径
- SDWebimage的缓存机制
- ajax应用实例 获取各种数据
- RTSP服务器实例live555源代码分析
- Hello Java
- win10 专业版 wamp 安装报错
- 浅读构建之法的提问以及阅读计划
- C++中头文件嵌套定义问题
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
- [android] 采用断点调试的方式观察pull解析的流程
- Node.js模块封装及使用方法
- Codeforces Round #305 (Div. 2) D.Mike and Feet
- 关于内存
- 怎么读取二代身份证UUID----在STM32+CLRC663平台试验成功