
十分飘逸的线段树
stone41123
一名苦逼的OIer,欢迎交朋友。。。
展开
-
洛谷10月月赛R1-T2-一道简单题 Sequence2
传送门 这个题明显是dp,我们来考虑如何dp。 我们把四种状态:(本列)选1,选2,选3(大于等于上一个),选3(小于等于上一个) 分别称为:状态1,状态2,状态3,状态4 那么,我们可以发现,状态1可以由前面的状态1,2,3,4推过来,只要满足那一位所选的数小于等于当前的数。 类似的,状态2也可以由前面的状态1,2,3,4推过来,只要满足条件。 然而,状态3却不可以由状态4递推过来,因原创 2017-10-08 01:46:30 · 480 阅读 · 0 评论 -
[codeforces 301D]:Yaroslav and Divisors
传送门 题目大意: 给定一个[1,n]的排列,有m次询问: 每次给定Li,Ri'>Li,RiLi,RiLi,Ri,询问有多少对q,w∈[Li,Ri]'>q,w∈[Li,Ri]q,w∈[Li,Ri]q,w\in [Li,Ri]使得Pq|Pw'>Pq|PwPq|PwP_q|P_w 题解: 这个题太妙辣 大概就是把每个询问拆成两个,具体题解可以看这里: https://www原创 2018-01-24 19:51:25 · 301 阅读 · 0 评论 -
[bzoj1018]:[SHOI2008]堵塞的交通traffic
传送门 我自从月考完了,就在调这个题。。 首先,先看一下官方题解。 算法:线段树 先贴一个连接:https://www.luogu.org/problemnew/show/U16516 这个是分测试点,可以看自己对了多少分。 然后开始算法解释。 一部分一部分来。这里是data的声明,初始化(很重要),还有输出调试。 data里的l,r代表所管理的区间 数组a代表存储的联通信息 具原创 2017-12-03 14:28:47 · 449 阅读 · 0 评论 -
mNOIP 模拟赛 day1 T2 数颜色
传送门 其实这个题大部分学过主席树的人肯定都会想到用主席树。 主席树做法就是记录每个颜色的出现次数,然后就可以做了,交换就swap一下,然后重建一下那个位置就好了。 然后我们可以算一下空间复杂度,O(nlogn+m(opt2)logn)O(nlogn+m(opt2)logn),这样就会MLE (比赛时只开了128MB) 我们可以写垃圾回收,然后又会TLE,所以主席树在128MB下还是做不出原创 2017-11-02 08:44:14 · 461 阅读 · 0 评论 -
数据结构--树状数组套主席树(动态区间k小)
给大家一波福利,我在洛谷上放了一道bzoj权限题 传送门 都不要说,要不我会被打。。。 有人说的话,我就删了这题了。。 然后就是这个题就是个模板题,直接板子。 我的封装过了,看一看细节,直接用就好了。 代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#原创 2017-10-25 01:34:18 · 336 阅读 · 0 评论 -
[bzoj1146][CTSC2008]网络管理Network(dfs序+树状数组套主席树)
再发一波福利,还是老规矩,不许说啊。 传送门 其实就是搞下来dfs序,然后差分 具体细节自己想想怎么处理 然后就是这题最恶心的空间 我死活卡在257MB 然后我就放弃卡 正规地先建一棵静态,然后修改在dfs序上改 这样就是O(nlogn+m(update)log2n)O(nlogn+m(update)log^2n)了 所以只开了89MB 代码:#include<cstdio>#原创 2017-10-25 01:40:11 · 446 阅读 · 0 评论 -
二逼平衡树(线段树套Splay)
传送门 (update->10.31) 我的第一次调出样例: 我就很无语了,居然会TLE 然后hzy dalao就告诉我:“我们那个板子一直都是错的!” 然后就告诉了我splay的正确姿势,然后。。。 我就问他:“这难道不是你的板子吗?” hzy:“你写的丑。” 我:“。。。” 然后我就愉快地去大(yang)牛(qi)分站交了一发,果断AC了这题。 其实我原来用的那个原创 2017-10-29 17:26:04 · 450 阅读 · 0 评论 -
10-29模拟赛题解(3合1)
盘子序列【题目描述】 有n个盘子。盘子被生产出来后,被按照某种顺序摞在一起。初始盘堆中如果一个盘子比所有它上面的盘子都大,那么它是安全的,否则它是危险的。称初始盘堆为A,另外有一个开始为空的盘堆B。为了掩盖失误,生产商会对盘子序列做一些“处理”,每次进行以下操作中的一个:(1)将A最上面的盘子放到B最上面;(2)将B最上面的盘子给你。在得到所有n个盘子之后,你需要判断初始盘堆里是否有危险的盘子。原创 2017-10-29 11:30:59 · 848 阅读 · 0 评论 -
[bzoj3545+3551][ONTAK2010]Peaks&&加强版(离线+线段树合并)||(kruskal重构树&&dfs序+主席树)
传送门 没权限号可以来这里交,老规矩,不准说。题面Description在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。Input第一行三个数N,M,Q。 第二行N个数,第i个数为h原创 2017-10-27 18:10:33 · 465 阅读 · 0 评论 -
洛谷 P3404 斐波那契(线段树)
传送门 首先肯定是线段树,然后问题就是怎么打标记。 观察题目,可以发现,修改操作其实就是给一段区间加上从1到r-l+1的斐波那契数列。 那么思路就是:预处理斐波那契数列前缀和,这样可以O(1)查询斐波那契数列和。然后打标记的时候,比如要修改[L,R],那么统一都打成L-1,然后更新的时候就可以O(1)修改sum值了。 具体就是比如区间[l,r],那么更新时就是: sum[rt]=(sum[原创 2017-09-16 12:09:43 · 571 阅读 · 0 评论 -
洛谷 P1533 可怜的狗狗(离线+权值线段树)
传送门 题解: 我第一感觉是:这不是主席树裸题吗? 然后:这用不着主席树吧。。。 Then:离线,然后vector暴力平衡树乱搞就好了呀! 打代码………… 然后愉快地交了上去,就只有90,TLE了一个点。 果然暴力平衡树还是过不了300000呀。 然后就搞出来我原来的Splay,贴了上去,信心满满地又交了一次。 60,2WA,2TLE,我就放弃了。 重新看这个题,我发现,我就可以原创 2017-10-02 21:06:52 · 510 阅读 · 0 评论 -
2014-3-15-高级打字机type(可持久化线段树)
Problem 1 高级打字机(type.cpp/c/pas) 【题目描述】 早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x。(type操作) 2.U x:撤销最后的x次修改操作。(Undo操作) (注意Query操作并不算修改操作) 3.Q x:询原创 2017-10-18 13:36:58 · 559 阅读 · 0 评论 -
BZOJ3569 DZY-Loves-Chinese-II
LinkDifficulty算法难度5,思维难度7,代码难度5Description给定一个无向图,nnn个点,mmm条边,qqq组询问每组询问删除kkk条边,问整张图是否连通强制在线n≤105,m≤5×105,q≤5×104n\le 10^5,m\le 5\times 10^5,q\le 5\times 10^4n≤105,m≤5×105,q≤5×104Solution发现在k...原创 2018-11-14 09:39:10 · 278 阅读 · 0 评论