HDU 5233 杂题
来源:互联网 发布:mac脚本编辑器 用途 编辑:程序博客网 时间:2024/06/05 15:51
Gunner II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1499 Accepted Submission(s): 569
Problem Description
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.
Jack will shot many times, he wants to know which bird will fall during each shot.
Input
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[n] 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)
In the second line, there are n numbers h[1],h[2],h[3],…,h[n] 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)
Output
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.
The id starts from 1.
Sample Input
5 51 2 3 4 11 3 1 4 2
Sample Output
#include <cstdio>#include <string.h>#include<cstdio>#include <map>using namespace std;int kfc[100005];// kfc[x]表示下一个高度和序号x的树一样高的序号 int last[100005];//last[a[x]]最后一个序号 map<int,int> a;//a[x]表示高度为x的第一个序号 int main(){int m,n,q,k,gao,t;while(scanf("%d%d",&n,&m)==2){a.clear();memset(kfc,0,sizeof kfc);for(int i=1;i<=n;i++){scanf("%d",&gao);if(a[gao]==0){a[gao]=i;}else{kfc[last[a[gao]]]=i;}last[a[gao]]=i;}for(int i=0;i<m;i++){scanf("%d",&q);if(a[q]==0)puts("-1");else{printf("%d\n",a[q]);a[q]=kfc[a[q]];}}}return 0;}13542
0 0
- HDU 5233 杂题
- HDu 5233
- hdu 5233 Gunner II
- hdu 5233 Gunner II
- hdu 5233 Gunner II
- HDU 5480 杂题
- HDU 5500 杂题
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- nyoj 38 布线问题(kruskal 最小生成树)
- 创建自己的Sprite子类时需要做哪些工作?
- hdu 5438 Ponds(线段树+dfs)
- 浏览器解析过程
- 二叉树的创建和遍历
- HDU 5233 杂题
- JSP之POST与GET的区别
- 排序算法 golang 实现
- CCF-2015-9-13-04
- hdu 5444 Elven Postman(模拟)
- C语言strstr()函数常用示例详解[求一个字符串在另一个字符串中出现的次数]
- Android:30分钟弄明白Touch事件分发机制
- 正则表达式
- 查看某个文件的git 历史和更改