关闭
当前搜索:

[平衡树 模拟] SnackDown 2017 Online Elimination Round #WIQ Waiting in a Queue

直接模拟下这个队列就好了 下一个处理的事件应该是第一个bi−i≤t−1b_i-i\le t-1的人 平衡树维护bi−ib_i-i#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; type...
阅读(199) 评论(0)

[DP 平衡树] Codeforces 809D Round #415 (Div. 1) D. Hitchhiking in the Baltic States

考虑求lis的过程 fif_i表示长度为ii的递增子序列最末尾一项的最小值 这个东西是单调递增的 每次在序列后加入一个数 就更新下相应的一个位置 现在变成加入的数可以是一个区间内 那么我们发现会对一段产生影响 平衡树维护下就好了#include #include #include using namespace std;inline c...
阅读(368) 评论(0)

[Treap模拟 线段树] Codechef COT5 Count on a Treap

传送门Description在计算机科学中,Treap根据键值是一棵二叉搜索树,根据权值是一个堆(本题中为大根堆) 。 你的任务是维护一棵Treap,支持以下操作 0 k w 插入一个新节点,键值为k,权值为w。 1 k 删除键值为k的节点。 2 ku kv 输出键值为ku和kv的两个点之间的路径长度。 保证没有两个点键值相同或权值相同,并且删除一个点时该点存在。Analysis考虑如何是如何建T...
阅读(361) 评论(0)

[替罪羊树 动态点分治 替罪羊式重构] BZOJ 3435 [Wc2014]紫荆花之恋 & UOJ #55 【WC2014】紫荆花之恋

网上题解都说的很详细了吧 考虑点分治 dist(i,j)≤Ri+Rjdist(i,j) ≤ R_i+R_j 可以转化成Dj−Rj≤Ri−DiD_j-R_j ≤ R_i-D_i 其中DiD_i表示到重心的距离 开两颗平衡树维护 一颗统计 一颗去重 然后 因为要动态加点 点分树的性质不能保证 所以当一个子树的大小超过某个阈值时 就把点分树替罪羊式重构下 说起来真轻巧#include<cs...
阅读(260) 评论(0)

[Treap 笛卡尔树 扫描线 补集转化] BZOJ 2658 [Zjoi2012]小蓝的好友(mrx)

这个先转化成全部矩形 C2R+1∗C2C+1C_{R+1}^2*C_{C+1}^2 减去不包含点的矩形 我们考虑扫描线 也就是以当前直线作为右边界的矩形有多少个 对于每个纵坐标 设h表示最左能扩展到哪里 假设hmin(1,n)=hxh_{min (1,n)}=h_x 那么答案至少应该C2C+1∗hminC_{C+1}^2*h_{min} 然后还要加上C2x−1∗(hmin(1,x−1)−...
阅读(334) 评论(0)

[Treap套权值线段树 线段树分裂与合并] BZOJ 4552 [Tjoi2016&Heoi2016]排序

线段树合并写了不少 分裂是第一次 直接每一个有序区间用一棵权值线段树维护有哪些数 外层用treap维护顺序 然后排序就把代表这段的很多颗线段树合并在一起 两端处会割开某个有序区间 会涉及分裂操作#include #include #include using namespace std;inline char nc(){ static...
阅读(388) 评论(0)

[替罪羊树 动态标号 线段树] BZOJ 3600 没有人的算术

好题啊 首先肯定是线段树 那么考虑我们怎么比较两个数的大小 采用CLJ在重量平衡树和后缀平衡树在信息学奥赛中的应用中提到的标号思想 不妨令每个节点表示一个区间 用区间的中值代表这个数的大小 具体实现是我们不仅要给每个点记录 l,r,mid 还要记录 x y 表示他等价于(x,y)的组合 因为新插入数是没有标号的 只能按定义比较first和second 注意0小于任何数 我没想到好的方法...
阅读(198) 评论(0)

[替罪羊树 模板题] BZOJ 3224 Tyvj 1728 普通平衡树

替罪羊树的模板题 关于删除 有人说按照BST的方法删 那样讨论太烦啦 直接打个标记表示已被删 下次重构的时候丢掉就好了#include #include #include using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if...
阅读(328) 评论(0)

[均摊 平衡树 || 线段树] HDU 5634 Rikka with Phi

用平衡树维护 分析同 [均摊 平衡树 || 线段树] Codeforces 438D #250 (Div. 1) D. The Child and Sequence #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100...
阅读(186) 评论(0)

[均摊 平衡树 || 线段树] Codeforces 438D #250 (Div. 1) D. The Child and Sequence

传说中的cf250 china场 题意就是区间取模 区间求和 单点修改 每个数被取模了 肯定会减小一半 一个数最多只要log次就能不动 把相同的数缩成一段 每一段最多被修改O(log n) 次 每一次修改会增加O(1) 段 用平衡树维护 复杂度是 nlog2n 的 对应的势能函数是每一段的log值的和 总势能是(n+m)logn 每次操作log复杂度 能够降1 那么就是两个lo...
阅读(210) 评论(0)

[非旋转Treap 权值线段树] 2016 计蒜之道 初赛 第五场 腾讯的新游戏

可以发现对于每个队伍 最小需要的防御值是max(ai-i+1) 因为打到第i个时已经加了i-1防御  然后所有队伍从小到大排序后 答案求法亦然 那么我用treap维护每个队列  用权值线段树维护答案 #include #include #include using namespace std; inline char nc(){ static char buf[100000...
阅读(153) 评论(0)

[非旋转Treap 神奇复杂度分析] Hillan模拟赛 D.理性愉悦

将所有询问建成一颗平衡树 每次分裂成两棵  右边打个减标记 然后怎么合并呢 要是右边最小值大于左边最大值 那么直接合并 要是不呢 我们不断从右边弹出最小插入左边 直到可以合并 暴力合并的复杂度怎么证呢 可以通过与prize的关系 发现右边的数减去prize后肯定小于原来的一半  每个数最多从右边到左边log次 复杂度就是nlogn了 #include #include #...
阅读(198) 评论(0)

[三合一 BFS 平衡树 线段树] BZOJ 2158 Crash 的旅行计划

无耻的三合一 详见Claris博客:http://www.cnblogs.com/clrs97/p/4403250.html...
阅读(289) 评论(0)

[扫描线 set] BZOJ 4561 [JLoi2016]圆的异或并

这道题算什么 这道题才可怕: [扫描线 树链剖分 树状数组] BZOJ2758 [SCOI2012]Blinker的噩梦...
阅读(650) 评论(0)

[DP 斜率优化 CDQ分治||动态维护凸包] BZOJ 1492 [NOI2007]货币兑换Cash

打了个set维护凸包 cdq等待填坑 #include #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA_ARGS__) using namespace std; //typedef long double ld; typedef double ld; inline...
阅读(243) 评论(0)

[线段树 Treap] BZOJ 2770 YY的Treap

hzwer: 首先询问的两个点的key是一个区间 则lca的key是在这个区间内pri最小的 那么就变成了维护一个集合 支持查询区间最值,加入删除元素 #include #include #include #include using namespace std; typedef long long ll; inline char nc() { static char b...
阅读(268) 评论(0)

[Splay模拟 线段树 || Splay || LCT] HDU 4942 Game on S♂play

做法颇多 算法一 形式化地描述要进行什么操作。 旋转节点:link/cut 。 更改两个点的子树和:单点修改。 询问一个点子树内子树和的积:子树询问。 可以在LCT上维护轻儿子信息(小Toptree),这样就可以子树询问 了。轻重边切换的时候顺便维护这个。 复杂度O(n log n),期望得分70 - 100分。 算法二 子树询问的是积,具有可减性。 可以转化...
阅读(448) 评论(0)

[Set 单调] BZOJ 2926 [Poi1999]空立方体问题

先考虑二维上的问题 然后就很好想到三维了 没有SPJ真蛋疼 #include #include #include #include using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2...
阅读(432) 评论(0)

[平衡树动态维护凸包] BZOJ 2300 [HAOI2011]防线修建

就是叉积乱搞 set水过 #include #include #include #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,...
阅读(349) 评论(0)

[线段树套平衡树] BZOJ 2883 gss2加强版

每个数支持出现一次 那么给每个数再赋一个权值pre 每次查询只要查[L,R]中pre 结果splay被卡了 打了个treap #include #include #include #include #define N 100010 using namespace std; typedef long long ll; inline char nc() { static char b...
阅读(274) 评论(0)
23条 共2页1 2 下一页 尾页
    个人资料
    • 访问:309409次
    • 积分:12408
    • 等级:
    • 排名:第1311名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论