摘要:
多重背包二进制优化 将$num$件,价值$v$,花费$cost$的物品$(v,w)$拆分为$(v,w),(v\times 2^1,w\times 2^1),(v\times 2^2,w\times 2^2),\cdots,(x,y)$(其中$(x,y)$是无法被拆分剩下来的余项),如此便可通过这些$ 阅读全文
摘要:
BZOJ 3211 花神游历各国 线段树 各数根号之和无法合并,无法用线段树维护,只能 暴力开根号 ~~(毒瘤)~~。但是又注意到$10^9$级别的数开方次数不超过10,任何数(除$0$)开到最后都为$1$,并且后续修改操作并不会再修改值,所以维护区间和,区间正常查询,区间递归到每一个数暴力修改,修 阅读全文
摘要:
「CQOI2006」简单题 线段树 水。区间修改,单点查询。用线段树维护区间$[L,R]$内的所有$1$的个数,懒标记表示为当前区间是否需要反转(相对于区间当前状态),下方标记时懒标记取反即可。 cpp include include define sl (x 1; buildt(l, mid, x 阅读全文
摘要:
[HNOI2008] 越狱 快速幂 水。考虑不发生越狱的情况:即宗教相同的都不相邻,一号任意放$m$种宗教的人,此后$n 1$个房间都放与上一个宗教不同的人,有$m 1$种,所以共有$m (m 1)^{n 1}$种。答案即$m^n m (m 1)^{n 1}$。快速幂即可。 注意,这里需要考虑模后相 阅读全文
摘要:
P3066 逃跑的Barn 左偏树 "题面" 题意:给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个。 注意到答案的两个性质: 一个点的所有答案一定 包含 在其所有儿子的答案中 如果节点$i$当前满足条件,那么所有距离(相对于根节点)比它小的节点当前也都满足(所以建个大 阅读全文
摘要:
P1552 [APIO2012]派遣 "题面 " 考虑枚举每个节点作为管理者,计算所获得的满意程度以更新答案。对于每个节点的计算,贪心,维护一个大根堆,每次弹出薪水最大的人。这里注意,一旦一个人被弹出,那么不再可能出现在其祖先们的最优解里(~~废话~~),所以使用可并堆左偏树优化复杂度。 cpp i 阅读全文
摘要:
左偏树总结 左偏树 一种合并复杂度为$O(log_2^n)$的 可并堆 具有左偏性质,左子树距离大于右子树距离,即$dis[ls]\ge dis[rs]$(这里一个点的距离定义为子树中离他最近的外节点到这个节点的距离,~~其实不需要纠结这个~~) 我们合并时每次将当前节点的右儿子和另一个堆的堆顶合并 阅读全文
摘要:
[USACO17JAN] 晋升者计数 dfs序+树状数组 "题面 洛谷P3605" 题意:一棵有点权的树,找出树中所有$(u,v)$的对数,其中$u,v$满足$val(u)\le val(v)$并且$u$为$v$的祖先。 本来想用dfs序+主席树做,每次查询$u$在其子树的大小排名,但是因为不熟写挂 阅读全文
摘要:
索引 算法笔记 高级数据结构 "树链剖分" "fhq treap总结" "树状数组" "莫队总结" "分块" "树上差分" "线段树合并" "主席树" "倍增" "种族并查集" "Splay" "左偏树总结" "字典树" 图论 "spfa−dfs" "差分约束" "Dijkstra+优先队列 堆优化 阅读全文
摘要:
[USACO10FEB]慢下来Slowing down "题面 洛谷P2982" ~~本来想写树剖来着~~ 暴力数据结构直接模拟,每头牛回到自己的农场后,其子树下的所有牛回到农舍时,必定会经过此牛舍,即:每头牛回舍后,会对其子树所有点造成多一次慢下来的机会。所以先使用$dfs$序将子树操作转化为线性 阅读全文