hdu 1754 I Hate It (线段树)
来源:互联网 发布:网络主题团日活动 编辑:程序博客网 时间:2024/05/16 12:17
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754
第一道线段树。线段树的树形结构如图:用递归的方法对树进行创建,更新,查找。当线段长度为L时,算法复杂度为log(L)+1;题目中要求一条线段的最大值,在结点中多定义一个max,每次更新时,要更新max。代码如下://968MS 好慢地说#include<iostream>#include<cstdio>#include<algorithm>const int maxn=220000;struct Node{int l,r,mid,max;}node[maxn<<2];int max(int a,int b){return a>b? a:b;}void init(int l,int r,int i){node[i].l=l;node[i].max=-1;node[i].r=r;node[i].mid=(l+r)>>1;if(l+1==r)return ;init(l,(l+r)>>1,i<<1);init((l+r)>>1,r,i<<1|1);}void update(int pos,int v,int i){if(v>node[i].max)node[i].max=v;if(node[i].l+1==node[i].r)return;if(pos<node[i].mid)update(pos,v,i<<1);if(pos>=node[i].mid)update(pos,v,i<<1|1);}int query(int l,int r,int i){if(l==node[i].l&&r==node[i].r)return node[i].max;if(l<node[i].mid){if(r<=node[i].mid)return query(l,r,i<<1);else return max(query(l,node[i].mid,i<<1),query(node[i].mid,r,i<<1|1));}else return query(l,r,i<<1|1);}int main(){int n,m,t,l,r,i;char ch;while(~scanf("%d%d",&n,&m)){init(1,n+1,1);for(i=1;i<=n;i++){scanf("%d",&t);update(i,t,1);}for(i=1;i<=m;i++){getchar();scanf("%c",&ch);scanf("%d%d",&l,&r);if(ch=='Q')printf("%d\n",query(l,r+1,1));else update(l,r,1);}}return 0;}
- 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 [线段树]
- 【线段树】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 线段树
- poj1141Brackets Sequence (DP)
- Catalan数的一些应用
- poj1191 棋盘分割 (DP)
- hdu 1015
- ICPC_shanghai_2000_舞蹈家 (DP)
- hdu 1754 I Hate It (线段树)
- iOS的基本设计模式
- JSF 2.0简介:Ajax对页面的增加与删除操作例子
- poj2752 Seek the Name, Seek the Fame (串)
- patchGuard v2
- Stanford 算法入门 week 6 Bloom Filter, Hash Function, Search Tree
- hdu1233 还是畅通工程 ( 最小生成树)
- svn版本控制系统在CentOS上的部署
- hdu1874 畅通工程续 (最短路)