I Hate It HDU
来源:互联网 发布:sublime text mac破解 编辑:程序博客网 时间:2024/06/08 10:47
这题涉及单点更新,相对来说比较容易把
/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>const int MAXN=1e6+100;struct t{ int l,r,v;} sgetree[800000+5];int a[300000+5];int index,grade;int l,r;int ans=0;using namespace std;//询问主要是把一个区间拆成几个区间去找,然后找到每个子区间的ans,找最大的void query(int l,int r,int root){ if(sgetree[root].l==l && sgetree[root].r==r) { ans=max(ans,sgetree[root].v); return ; } int mid=(sgetree[root].l+sgetree[root].r)/2; if(r<=mid) query(l,r,root*2); else if(l>mid) query(l,r,root*2+1); else { query(l,mid,root*2); query(mid+1,r,root*2+1); }}// 更新主要是自顶向下找到该叶子节点,再自下向上回溯更新父亲节点对应的maxvoid update(int root){ if(sgetree[root].l==index && sgetree[root].r==index ) { sgetree[root].v=grade; return ; } int mid=(sgetree[root].l+sgetree[root].r)/2; if(index<=mid) update(root*2); else update(root*2+1); sgetree[root].v=max(sgetree[root*2].v,sgetree[root*2+1].v);}// 递归建树void build(int l,int r,int root){ sgetree[root].l=l; sgetree[root].r=r; if(l==r) { sgetree[root].v=a[l];// a[right]一样 return ; } int mid=(l+r)/2; build(l,mid,root*2); build(mid+1,r,root*2+1); sgetree[root].v=max(sgetree[root*2].v,sgetree[root*2+1].v);}int main(void){ int n,m; while((scanf("%d%d",&n,&m))==2) { for(int i=1; i<=n; i++) scanf("%d",&a[i]); build(1,n,1); while(m--) { ans=0; char str[2]; scanf("%s",str); if(strcmp(str,"U")==0) { scanf("%d%d",&index,&grade); update(1); } else if(strcmp(str,"Q")==0) { scanf("%d%d",&l,&r); query(l,r,1); printf("%d\n",ans); } } }}
阅读全文
0 0
- HDU I Hate It
- I Hate It HDU
- I Hate It HDU
- I Hate It (HDU
- I Hate It HDU
- I hate it.hdu
- I Hate It HDU
- I Hate It HDU
- I Hate It HDU
- hdu 1754 I Hate It
- HDU 1754 I Hate It
- hdu 1754 I Hate It
- HDU 1754 I Hate It
- hdu 1754 I Hate It
- HDU 1754 I Hate It .
- HDU 1754 i hate it
- hdu 1754 I Hate It
- hdu 1754 I Hate It
- 个人信息查询 2297288061
- python一道关于随机数的练习题
- shared memory realm does not exist
- 面试题 18: 树的子结构
- java.lang.String 中 API 的使用
- I Hate It HDU
- 237. Delete Node in a Linked List
- hdu1003 Max Sum 简单规划
- HTML/CSS学习记录(1)
- 数据库QBC语句查询
- java中equals方法的用法以及==的用法(转)
- Vue 2.0 的数据依赖/virtual-dom实现原理简析
- 【2017/7/9】解决linux系统NAT模式下无法上网
- 创建和销毁对象