hdu1754
来源:互联网 发布:手机淘宝下载安装 编辑:程序博客网 时间:2024/06/09 16:47
线段树的应用。先建立一个线段树,再记录每一个节点中出现的值,并进行判断。
#include <iostream>#include <fstream>#include <memory.h>#include <stdio.h>#define maxx 200003using namespace std;int cat[4 * maxx],N,F,p,v,ql,qr;void update(int r,int L,int R){ int mid = (L + R) / 2; if(L == R) cat[r] = v; else { if(p <= mid) update(r * 2,L,mid); else update(r * 2 + 1,mid + 1,R); cat[r] = max(cat[2 * r],cat[2 * r + 1]); }}int query(int r,int L,int R){ int ans = -1; int mid = (L + R) / 2; if(ql <= L && qr >= R) return cat[r]; if(qr <= mid) return query(2 * r,L,mid); else if(ql > mid) return query(2 * r + 1,mid + 1,R); else ans = max(query(2 * r,L,mid),query(2 * r + 1,mid + 1,R)); return ans;}int main(){ //ifstream cin("in.txt"); while(cin >> N >> F) { // memset(cat,0,sizeof(cat)); for(int i = 0;i < N;i ++){ p = i + 1; cin >> v; update(1,1,N); } char temp[5];int a,b; for(int j = 0;j < F;j ++){ cin >> temp >> a >> b; if(temp[0] == 'Q') {ql = a;qr = b;cout << query(1,1,N) << endl;} else if(temp[0] == 'U'){p = a;v = b;update(1,1,N);} else ; } } return 0;}
0 0
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- HDU1754
- hdu1754
- HDU1754
- HDU1754
- hdu1754
- hdu1754
- HDU1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- HDU1754
- 初级软件开发人员进修必备的20本书(上)
- 反正切函数的应用
- Pots——BFS
- POJ 2409 Let it Bead(Polya简单应用)
- UVa 10209 Is This Integration ?(计算几何)
- hdu1754
- Metasploit2 - tcp port 21 - vsftpd
- Android 系统的java世界是怎么诞生的?孵化器zygote的初步探索
- 支付宝异步通知 asp
- Hiberante 4.5.1 配置遇到的困难
- 数据结构中链表元素的删除
- 大端小端格式详解
- 452A - Eevee 模拟字符串,挺简单的一道题
- Metasploit2: tcp port 111 – rpcbind