博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-2528 Mayor's posters (线段树区间更新+离散化)
阅读量:4560 次
发布时间:2019-06-08

本文共 1188 字,大约阅读时间需要 3 分钟。

题目分析:线段树区间更新+离散化

 

代码如下:

# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
using namespace std;# define LL long longconst int N=10000;const int INF=1<<30;const double oo=1e20;const double eps=1e-20;int x[N+5],y[N+5];vector
v;map
mp;int lazy[N*8+5];int tr[N*8+5];set
s;void pushDown(int o,int l,int r){ if(lazy[o]!=-1){ lazy[o<<1]=lazy[o<<1|1]=lazy[o]; tr[o<<1]=tr[o<<1|1]=lazy[o]; lazy[o]=-1; }}void build(int o,int l,int r){ tr[o]=-1; lazy[o]=-1; if(l==r) return ; int mid=l+(r-l)/2; build(o<<1,l,mid); build(o<<1|1,mid+1,r);}void update(int o,int l,int r,int L,int R,int val){ if(L<=l&&r<=R){ tr[o]=lazy[o]=val; }else{ pushDown(o,l,r); int mid=l+(r-l)/2; if(L<=mid) update(o<<1,l,mid,L,R,val); if(R>mid) update(o<<1|1,mid+1,r,L,R,val); }}void query(int o,int l,int r){ if(l==r){ if(tr[o]!=-1) s.insert(tr[o]); }else{ pushDown(o,l,r); int mid=l+(r-l)/2; query(o<<1,l,mid); query(o<<1|1,mid+1,r); }}int solve(int m,int n){ build(1,1,m); for(int i=0;i

  

转载于:https://www.cnblogs.com/20143605--pcx/p/5536191.html

你可能感兴趣的文章
关于日历
查看>>
荣品KING3288开发板升级啦!
查看>>
系统产生死锁的四个必要条件
查看>>
初心易得,始终难守
查看>>
北京集训DAY4
查看>>
编译 ACE
查看>>
JDBC(1)
查看>>
《程序是怎样跑起来的》第五章
查看>>
配置SSH单向无密码访问
查看>>
深入浅出Docker(五):基于Fig搭建开发环境
查看>>
ubuntu apt 代理设置
查看>>
第四章—变量,作用域和内存问题(二)
查看>>
MySQL日期处理函数_20160922
查看>>
Mysql存储引擎以及锁机制
查看>>
linux 操作
查看>>
Python—语法基础(6) 列表类型及操作
查看>>
右键菜单没有新建文本文件了,怎么办?
查看>>
npm run dev后sass报错* !!vue-style-loader!css-loader?{“sourceMap”:true}......
查看>>
mongodb数据库---本地集合拷贝克隆、筛选剔除(转并学习)
查看>>
Python中的random模块
查看>>