ZOJ 3633 Alice's present【线段树】
来源:互联网 发布:ui设计前景 知乎 编辑:程序博客网 时间:2024/05/16 17:00
/*<span style="font-family:Arial,Helvetica,Verdana,sans-serif;"><span style="font-size:14px;">用线段树记录每个点的左边离他最近的数出现的位置,这样就转化为了求区间最值问题,碰到一个询问区间[l,r],求区间最值,如果区间最值为x,x>=l,那么结果即是a[l],否则说明没有出现重复的数</span></span>*/#include<iostream>using namespace std;#include<algorithm>#include<map>#define maxn 500004#define maxm 50004int a[maxn],b[maxn];struct node{int l;int r;int big;}tree [4*maxn];//线段树要开4倍点的个数void build(int id, int l, int r){tree[id].l = l;tree[id].r = r;if (l == r){tree[id].big = b[l];return;}int mid = (l + r) / 2;build(2 * id, l, mid);build(2 * id + 1, mid + 1, r);tree[id].big = max(tree[2*id].big,tree[2*id+1].big);}int query(int x, int y,int id){if (tree[id].l==x&&tree[id].r==y){return tree[id].big;}int mid = (tree[id].l + tree[id].r) / 2;if (y <= mid)return query(x, y, 2 * id);else if (x > mid)return query(x, y, 2 * id + 1);elsereturn max(query(x, mid, 2 * id), query(mid + 1, y, 2 * id + 1));}int main(){int n = 0,i=0,j=0,m=0;map<int, int> mymap;while (cin>>n){mymap.clear();for (i = 1; i <= n; i++){cin >> a[i];if (mymap.count(a[i]) == 0){mymap.insert(make_pair(a[i],i));b[i] = 0;}else{b[i] = mymap[a[i]];mymap[a[i]] = i;}}build(1,1,n);cin >> m;for ( i = 0; i < m; i++){int x = 0, y = 0;cin >> x >> y;int ans = query(x, y,1);if (ans >= x) cout << a[ans] << endl;else cout << "OK" << endl;}cout << endl;}return 0;}
0 0
- zoj 3633 Alice's present 线段树
- ZOJ 3633 Alice's present【线段树】
- zoj 3633 Alice's present(离线+线段树)
- zoj-3633 Alice's present 离线线段树
- [ZOJ 3633]Alice's present 离线分块/线段树
- zoj 3633 Alice's present(线段树)
- ZOJ 3633 Alice's present(线段树)
- ZOJ 3633 Alice's present
- ZOJ-3633-Alice's present
- zoj 3633 Alice's present
- Zoj 3633 Alice's present
- zoj 3633 Alice's present
- ZOJ 3633 Alice's present
- ZOJ 3633Alice's present
- zoj 3633 Alice's present
- zoj 3633 Alice's present
- ZOJ-3633-Alice's present
- zoj 3363 线段树维护最大值 Alice's present
- 除去反编译后的java文件的乱码
- HDU 1074 Doing Homework(状压DP输出路径)
- submit 开发nodejs
- css3中webkit-box的用法
- 经典SQL语句大全
- ZOJ 3633 Alice's present【线段树】
- Map以自定义类做为键值
- Android中Tab的应用,底部,随选择切换图标和文字颜色
- 【html】<!DOCTYPE>html版本声明
- zookeeper 常用操作
- linux搭建pppoe(只做认证不转发)
- uva 10716 Evil Straw Warts Live
- Express直接listen()和嵌套在http上listen()的不同
- iOS 上架流程(四)