2018年11月6日

poj1436水平可见线

摘要: 还是线段树区间更新,这次不需要对线段离散化,但是要把线段纵坐标*2,可以举例模拟 阅读全文

posted @ 2018-11-06 13:54 zsben 阅读(172) 评论(0) 推荐(0) 编辑

2018年11月5日

poj2528贴海报,,

摘要: 对于区间段的离散化需要注意一下,和点离散化不同 离散后如何识别一段区间还是一段区间,而不是两个顶点,就是如果两个点的距离大于1,就往离散的数据里插入一个中间值,即用三个点来表示一段区间 阅读全文

posted @ 2018-11-05 20:33 zsben 阅读(144) 评论(0) 推荐(0) 编辑

poj3468

摘要: #include #include #include using namespace std; #define lson l,m,rt>1))*lazy[rt]; sum[rt>1)*lazy[rt]; lazy[rt]=0; } } void build(int l,int r,int rt){ lazy[rt]=0; if(l==r){... 阅读全文

posted @ 2018-11-05 17:01 zsben 阅读(101) 评论(0) 推荐(0) 编辑

hdu1698

摘要: /*区间更新*/#include #include using namespace std; #define lson l , m , rt > 1)) * col[rt]; sum[rt> 1) * col[rt]; col[rt] = 0; } } void build(int l,int r,int ... 阅读全文

posted @ 2018-11-05 16:14 zsben 阅读(89) 评论(0) 推荐(0) 编辑

2018年11月4日

ural1989 单点更新+字符串hash

摘要: 正解是双哈希,不过一次哈希也能解决。。 然后某个数字就对应一个字符串,虽然有些不同串对应同一个数字,但是概率非常小,可以忽略不计。从左到右、从右到左进行两次hash,如果是回文串,那么对应的整数必定存在某种关系(可以理解成相等),对于更新操作,就是单点更新。 阅读全文

posted @ 2018-11-04 21:26 zsben 阅读(161) 评论(0) 推荐(0) 编辑

cf Queries on a String

摘要: #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define maxn 200005 char s[maxn]; int nxt[maxn][27],ans[maxn],t[maxn]; int 阅读全文

posted @ 2018-11-04 17:57 zsben 阅读(173) 评论(0) 推荐(0) 编辑

hdu4605

摘要: 两颗线段树,分别维护向左走向右走的情况 线段树的结点维护区间有多少点被路径经过了 离线读入所有询问,dfs遍历树的每一个结点,访问到v时解决对v的所有查询,在dfs过程中只需要维护根节点到v的链,线段树查询链上有多少结点值大于或小于询问的x,即能求出到达x的概率 阅读全文

posted @ 2018-11-04 11:43 zsben 阅读(104) 评论(0) 推荐(0) 编辑

2018年11月3日

codeforce 139E

摘要: 成段更新+离散化才能过,数据好强。。 单点更新挂在了test27,下次做到成段更新再来做! 阅读全文

posted @ 2018-11-03 20:31 zsben 阅读(138) 评论(0) 推荐(0) 编辑

2018年11月2日

线段树单点更新+离线

摘要: cf19d 离散化+set 阅读全文

posted @ 2018-11-02 22:43 zsben 阅读(129) 评论(0) 推荐(0) 编辑

线段树单点更新解插空问题

摘要: poj2828 线段树维护区间空余的位置,每次插入一个点 hdu3564 线段树解决插值,求出最终序列,再求lis 阅读全文

posted @ 2018-11-02 22:34 zsben 阅读(191) 评论(0) 推荐(0) 编辑

导航