- 博客(4)
- 收藏
- 关注
原创 XOR on Segment(线段树,二进制拆位)
题目描述 看到异或我们很自然地想到二进制拆位。 我们对于线段树的每个节点,建一个数组sumsumsum。 sum[i]sum[i]sum[i]表示当前节点的儿子中有多少个数的二进制有第i位 因为这题是区间修改,所以再建一个lazy[i]lazy[i]lazy[i]表示懒标记 再对线段树的代码稍作调整这题就大功告成了! 贴个代码 # include <bits/stdc++.h> usi...
2020-02-05 22:04:29
375
2
原创 P4513 小白逛公园 & SP1716 GSS3 - Can you answer these queries III(线段树维护区间最大字段和)
[题目描述1] 题目描述2 这两道题几乎一模一样,都是线段树实现单点修改,查询区间最大字段和的功能 这类题目的难点通常在于如何pushuppushuppushup 和 pushdownpushdownpushdown(这题因为是单点修改没有pushdownpushdownpushdown) 先说一句废话一个区间的最大字段和有三种情况: 它左区间的最大字段和,它右区间的最大字段和,它左区间取一部分...
2020-02-05 21:52:45
181
1
原创 [TJOI2018]数学计算(线段树)
题目描述 因为我在学校做过类似的题,所以这题一眼秒了 这题我们首先会想到乘法逆元,但发现不太可做。 这时我们仔细考虑平衡树,发现我们可以按照操作得到一个数组。最后通过线段树查询所有数的乘积。 对于操作1,我们可以将数组第iii个数由1变为xxx 对于操作2,我们可以将数组第iii个数的值变为1 输出的话,甚至连线段树的queryqueryquery函数都不用写,直接输出根节点的值就可以了 # in...
2020-02-01 16:39:15
1362
2
原创 [NOI2004]郁闷的出纳员(Splay)
[NOI2004]郁闷的出纳员(Splay) 题目描述 首先这题一看就是道平衡树。我们来考虑如何用平衡树实现这个操作 首先,如果要给员工加工资或者扣工资,平衡树肯定是实现不了。我们要用一个变量来记录目前加了多少工资,我们可以先叫它lazylazylazy,我们每个询问在取出的时候加上lazylazylazy就好了。 但是如果一个员工是新加入公司的,那么前面给员工加的工资它肯定是享受不到,为了解决这...
2020-02-01 16:13:40
1444
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅