【BestCoder】 HDOJ 5233 Gunner II
2015-05-25 18:12
316 查看
用邻接表记录一下对应位置的鸟就行了。。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib> #include <cmath> #include <time.h> #define maxn 100005 #define maxm 40005 #define eps 1e-12 #define mod 998244353 #define INF 0x3f3f3f3f #define PI (acos(-1.0)) #define lowbit(x) (x&(-x)) #define mp make_pair #define ls o<<1 #define rs o<<1 | 1 #define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R #pragma comment(linker, "/STACK:102400000,102400000") #define pii pair<int, int> typedef long long LL; typedef unsigned long long ULL; //typedef int LL; using namespace std; LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;} LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;} // head int nxt[maxn << 1]; int val[maxn << 1]; int h[maxn << 1]; int x[maxn << 1]; int a[maxn]; int b[maxn]; int n, m; void work() { int cnt = 0; for(int i = 1; i <= n; i++) scanf("%d", &a[i]), x[cnt++] = a[i]; for(int i = 1; i <= m; i++) scanf("%d", &b[i]), x[cnt++] = b[i]; sort(x, x+cnt); cnt = unique(x, x+cnt) - x; for(int i = 1; i <= n; i++) a[i] = lower_bound(x, x+cnt, a[i]) - x; for(int i = 1; i <= m; i++) b[i] = lower_bound(x, x+cnt, b[i]) - x; cnt = 0; memset(h, -1, sizeof h); for(int i = n; i >= 1; i--) { val[cnt] = i; nxt[cnt] = h[a[i]]; h[a[i]] = cnt++; } for(int i = 1; i <= m; i++) { int& e = h[b[i]]; if(~e) { printf("%d\n", val[e]); e = nxt[e]; } else printf("-1\n"); } } int main() { while(scanf("%d%d", &n, &m)!=EOF) { work(); } return 0; }
相关文章推荐
- HDOJ4908 - BestCoder Sequence
- 【BestCoder】 HDOJ 5110 Alexandra and COS
- 【BestCoder】 HDOJ 5167 Fibonacci
- BestCoder61(div.2)1002---hdoj 5523 Game
- 【map】【HDOJ】5233 Gunner II
- 【BestCoder】 HDOJ 5225 Tom and permutation
- 【BestCoder】 HDOJ 5067 Harry And Dig Machine
- 【BestCoder】 HDOJ 5088
- 【HDOJ】【BestCoder 2nd Anniversary】1003 Wool
- HDOJ 4908 - BestCoder Sequence 简单统计
- 【BestCoder】 HDOJ 5019 Revenge of GCD
- hdu 5233- Gunner II(BestCoder Round #42)离散化
- 【BestCoder】 HDOJ 5018 Revenge of Fibonacci
- 【BestCoder】 HDOJ 5101 Select
- 【BestCoder】 HDOJ 5162 Jump and Jump...
- 【BestCoder】 HDOJ 5020 Revenge of Collinearity
- 【BestCoder】 HDOJ 5102 The K-th Distance
- 【BestCoder】 HDOJ 5163 Taking Bus
- HDOJ 题目4096 BestCoder Sequence(数学,水)
- 【BestCoder】 HDOJ 5055 Bob and math problem