B - I Hate It HDU - 1754 线段树区间最大值板子(单点更新,区间最大)
第一次打 改了半天 各种小错误 难受
- #include<cstdio>
- #include<iostream>
- using namespace std;
- const int maxn=+;
- int a[maxn],n;
- struct Node{
- int l,r;
- long long Max,lazy;
- void update(long long val){
- ;//本题没用
- }
- }tree[maxn*];
- void push_up(int x){
- tree[x].Max=max(tree[x<<].Max,tree[x<<|].Max);
- }
- void push_down(int x){//本题不用
- int lazyval=tree[x].lazy;
- if(lazyval){
- tree[x<<].update(lazyval);
- tree[x<<|].update(lazyval);
- tree[x].lazy=;
- }
- }
- void build(int x,int l,int r){
- tree[x].l=l,tree[x].r=r;
- tree[x].Max=tree[x].lazy=;
- if(l==r){//建树 初始化叶子
- tree[x].Max=a[l];
- }
- else {//递归建树
- int mid=l+r>>;
- build(x<<,l,mid);
- build(x<<|,mid+,r);
- push_up(x);
- }
- }
- void update(int x,int l,int r,long long val){
- int L=tree[x].l,R=tree[x].r;
- if(l==L&&R==r&&L==R){tree[x].Max=val;return ;}//单点修改值
- if(r<L||l>R)return ;//如果这两个区间没有交集 x的区间就不用修改了
- //int mid=L+R>>1;
- update(x<<,l,r,val);//分别修改左右区间
- update(x<<|,l,r,val);
- push_up(x);//更新左右区间
- }
- long long query(int x,int l,int r){
- int L=tree[x].l,R=tree[x].r;
- if(l<=L&&R<=r){return tree[x].Max;}//如果当前节点区间完全被要查询区间包含 直接返回该节点的最大值即可
- if(r<L||l>R)return ;//如果当前区间不在要查询区间里面,返回一个不影响其他查找的最小值 0 (学生分数都是正数)
- // int mid=L+R>>1;
- long long ans=;
- ans=max(query(x<<,l,r),query(x<<|,l,r));
- return ans;
- }
- int main(){
- int n,q;
- while(scanf("%d%d",&n,&q)==){
- for(int i=;i<=n;i++)scanf("%d",&a[i]);
- build(,,n);
- char op[];
- int l,r;
- for(int i=;i<=q;i++)
- {
- scanf("%s%d%d",op,&l,&r);
- if(op[]=='Q'){
- //int l,r;
- //scanf("%d%d",&l,&r);
- printf("%lld\n",query(,l,r));
- }
- else if(op[]=='U'){
- //int l,r;
- //scanf("%d%d",&l,&r);
- update(,l,l,r);
- }
- }
- }
- return ;
- }
B - I Hate It HDU - 1754 线段树区间最大值板子(单点更新,区间最大)的更多相关文章
- HDU 1754线段树基本操作,建树,更新,查询
代码线段树入门整理中有介绍. #include<cstdio> #include<algorithm> #include<cstring> #include< ...
- hdu 1754 线段树(Max+单点修改)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 线段树&&线段树的创建线段树的查询&&单节点更新&&区间更新
目录 线段树 什么是线段树? 线段树的创建 线段树的查询 单节点更新 区间更新 未完待续 线段树 实现问题:常用于求数组区间最小值 时间复杂度:(1).建树复杂度:nlogn.(2).线段树算法复杂度 ...
- HDU(1754),线段树,单点替换,区间最值
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 线段树模板题,update功能是单点替换,query是访问区间最大值. #include < ...
- hdu 1754 线段树入门
线段树点修改 区间最大值查询 #include <cstdio> #include <cstdlib> #include <cmath> #include < ...
- HDU 1754 线段树 单点跟新 HDU 1166 敌兵布阵 线段树 区间求和
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 1754 线段树入门解题报告
---恢复内容开始--- 题意:给定区间,每个人的成绩, Q次询问,求每次询问区间中的最大值 思路:构造线段树 代码: #include<stdio.h> #include<algo ...
- HDU - 1754 线段树-单点修改+询问区间最大值
这个也是线段树的经验问题,待修改的,动态询问区间的最大值,只需要每次更新的时候,去把利用子节点的信息进行修改即可以. 注意更新的时候区间的选择,需要对区间进行二分. #include<iostr ...
- hdu 1754 线段树(单点替换 区间最值)
Sample Input5 61 2 3 4 5Q 1 5 //1-5结点的最大值U 3 6 //将点3的数值换成6Q 3 4Q 4 5U 2 9Q 1 5 Sample Output5659 # i ...
- HDU 1754线段树
第一个自己动手写的线段树,1Y还是有点小激动哈(虽然是模版题) 1 #include<cstdio> 2 #include<cstring> 3 #include<alg ...
随机推荐
- Bing.com在.NET Core 2.1上运行!
Bing.com在.NET Core 2.1上运行! 相关知识请参考.netCore开发团队博客(https://blogs.msdn.microsoft.com/dotnet/) Bing.com是 ...
- Python_查找员工信息-48
''' 查找出userinfo文件中年龄大于22岁的员工姓名和年龄 1,Alex,22,13651054608,IT 2,Egon,23,13304320533,Tearcher 3,nezha,25 ...
- Python—生成器
列表生成式 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? >>> a = [i+1 for i in r ...
- 全局关键字搜索:Element UI Table内容过滤\jQuery过滤器fastLiveFilter插件\BootstrapVue插件;
```html data:{ resultMaster: [], otableData:[], schfilter:'' } watch: { schfilter: function(val, old ...
- Maven指定编译级别
maven默认的编译水平是1.5 单个项目单独设置 如果需要在某个项目中指定编译级别,可以在项目的pom.xml文件中配置,如下: <build> <plugins> < ...
- NET 使用 RabbitMQ
NET 使用 RabbitMQ 前言 最近项目要使用RabbitMQ,园里里面已经有很多优秀的文章,Rabbitmq官网也有.net实例.这里我尝试下图文并茂之形式记录下使用的过程. 安装 Rabbi ...
- [2017BUAA软工助教]团队建议
关于团队项目的个人建议 (以下排名不分先后) 一.hotcode5 你们组要做一个"课件-心得"共享平台 目前最大的竞争对手其实不是北航课程中心网站,而是每个系自己的大班群. 热心 ...
- MyBatis使用注解开发
- MySQL使用select查询时,在查询结果中增加一个字段并指定固定值
假设需求是这样的: mysql> desc user; +-------+----------+------+-----+---------+----------------+ | Field ...
- Python爬虫——用BeautifulSoup、python-docx爬取廖雪峰大大的教程为word文档
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 廖雪峰大大贡献的教程写的不错,写了个爬虫把教程保存为word文件,供大家方便下载学习:http://p ...