UOJ25——IOI2014Wall
来源:互联网 发布:php获取服务器信息 编辑:程序博客网 时间:2024/06/01 07:43
1、题目大意:这道题也是线段树修改,有两种修改,一个区间中大于h都变成h,一个区间中小于h都变成h,单点询问
主要是这几种操作
2、分析:这道题是双标记,还是父亲的优先级比儿子低,自己用手推推就可以知道怎么下传标记了(挺好推得),这是一道交互题,
主要是这几种操作
2、分析:这道题是双标记,还是父亲的优先级比儿子低,自己用手推推就可以知道怎么下传标记了(挺好推得),这是一道交互题,
以前从来都没有做过交互题,做完顿时感觉交互和传统没有太大的区别。。。
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;struct segment_tree{ int milazy[10000000]; int malazy[10000000]; int x,y,z; int value[10000000]; void init(){ memset(value,0,sizeof(value)); for(int i=1;i<=8000000;i++)milazy[i]=214748364; memset(malazy,0,sizeof(malazy)); return; } void update(int l,int r,int o){ milazy[2*o]=min(milazy[2*o],milazy[o]);malazy[2*o]=min(malazy[2*o],milazy[o]); milazy[2*o+1]=min(milazy[2*o+1],milazy[o]);malazy[2*o+1]=min(malazy[2*o+1],milazy[o]); milazy[2*o]=max(milazy[2*o],malazy[o]);malazy[2*o]=max(malazy[2*o],malazy[o]); milazy[2*o+1]=max(milazy[2*o+1],malazy[o]);malazy[2*o+1]=max(malazy[2*o+1],malazy[o]); if(l==r){ value[l]=min(milazy[o],value[l]);value[l]=max(malazy[o],value[l]); } malazy[o]=0;milazy[o]=214748364; return; } void add_mi(int l,int r,int o){ update(l,r,o); if(x>r||y<l) return; if(x<=l&&r<=y){ milazy[o]=z;update(l,r,o); return; } int mid=(l+r)/2; add_mi(l,mid,2*o);add_mi(mid+1,r,2*o+1); return; } void add_ma(int l,int r,int o){ update(l,r,o); if(x>r||y<l)return; if(x<=l&&r<=y){ malazy[o]=z;update(l, r, o); return; } int mid=(l+r)/2; add_ma(l,mid,2*o);add_ma(mid+1,r,2*o+1); return; } int query(int l,int r,int o){ update(l,r,o); if(x>r||x<l)return 0; if(l==r&&l==x){ return value[l]; } int mid=(l+r)/2;int ret1,ret2; ret1=query(l,mid,2*o);ret2=query(mid+1,r,2*o+1); return max(ret1,ret2); }} wt;void buildWall(int n,int k,int op[],int left[],int right[],int height[],int finalHeight[]){ wt.init(); for(int i=0;i<k;i++){ if(op[i]==1){ wt.x=left[i]+1;wt.y=right[i]+1;wt.z=height[i]; wt.add_ma(1,n,1); } else{ wt.x=left[i]+1;wt.y=right[i]+1;wt.z=height[i]; wt.add_mi(1,n,1); } } for(int i=1;i<=n;i++){ wt.x=i; finalHeight[i-1]=wt.query(1,n,1); } return;}
0 0
- UOJ25——IOI2014Wall
- ————
- ————————————————FL2440初接触———————————————————
- ——!
- ——
- ————————反射
- ————————枚举
- ————————注解
- ————个人主页————
- 转载————————---多态--------------
- Android————————Handler
- 几种编码格式——————————————————————待整理
- 《——————————搭建自己的网站————————————》
- 匆匆————
- ——安意如——
- ——期刊杂志——
- 感慨 ————
- 有时候————
- Java实现人民币大写代码
- AngularJS实现跨域请求
- java Map及Map.Entry详解
- 关于Android RenderScript 的详细说明和一些实用文档
- 【Android】常见控件的属性及使用
- UOJ25——IOI2014Wall
- Java NIO原理图文分析及代码实现
- 【opencv】鱼眼图像畸变校正——双经度法
- iOS在沙盒Documents中创建文件夹以及获取沙盒路径
- Android TextView(EditView)文字底部或者中间 加横线
- 帧动画
- date通过json传递序列化后的前台转换
- echart 默认选中legend及其选中事件
- 详解Sqoop的架构和安装部署