HDU-1754 I Hate It
来源:互联网 发布:谷歌开源图片压缩算法 编辑:程序博客网 时间:2024/05/16 18:24
题目链接:https://vjudge.net/problem/HDU-1754
用线段树模板来做,把每个节点由储存子节点和改为储存子节点最大值就可以了
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 200000struct node{ int l, r, sum; int mid(){ return (l+r)>>1; }};node Tree[maxn<<2];int value[maxn+10];int flag;//初始化树,根节点是1void init_tree(int root, int l, int r){ Tree[root].l = l; Tree[root].r = r; if(l == r) Tree[root].sum = value[l]; else{ init_tree(root<<1, l, (l+r)>>1); init_tree((root<<1)+1, ((l+r)>>1) + 1, r); Tree[root].sum = max(Tree[root<<1].sum , Tree[(root<<1)+1].sum); }}//查找和int query_tree(int root, int l, int r){ int m = Tree[root].mid(); if(l == Tree[root].l && r == Tree[root].r) return Tree[root].sum; else{ if(l > m) return query_tree((root<<1)+1, l, r); else if(r <= m) return query_tree(root<<1, l, r); else return max(query_tree(root<<1, l, m) , query_tree((root<<1)+1, m+1, r)); }}void update_tree(int root, int idx, int v){ if(Tree[root].l == Tree[root].r) Tree[root].sum = v; else{ if(idx <= Tree[root].mid()) update_tree(root<<1, idx, v); else update_tree((root<<1)+1, idx, v); Tree[root].sum = max(Tree[root<<1].sum,Tree[(root<<1)+1].sum); }}int main(){int n,m;while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++)scanf("%d",&value[i]);init_tree(1,1,n);int a,b;char c[5];for(int i=0;i<m;i++){scanf("%s%d%d",c,&a,&b);if(c[0]=='Q'){printf("%d\n",query_tree(1,a,b));}else{update_tree(1,a,b);}}}return 0;}
阅读全文
0 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
- PYTHON 学习笔记10-30-2017
- 或许,时间的浪费源于对未知的恐惧
- 笔记 -- 08 -- 改变shap背景设置
- AsyncTask的cancel方法失效的原因
- 10.Spring Cloud:服务网关(过滤器)【Dalston版】
- HDU-1754 I Hate It
- 安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running
- TensorFlow(一)
- 基础集合论 第一章 2 集合
- 前端大牛的几个优化指标
- [S3-E444]如何用TypeScript开发微信小程序
- ScrollView
- 文件操作笔记
- 关于Junit测试框架