该文被密码保护。 阅读全文
posted @ 2019-12-16 21:24 Fruitea 阅读(8) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-12-16 21:23 Fruitea 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-12-16 21:21 Fruitea 阅读(6) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-12-16 21:19 Fruitea 阅读(6) 评论(0) 推荐(0) 编辑
摘要: "Link" Solution 有两种解法。 法1: 直接上分治FFT,也就是CDQ分治+FFT。 具体做法是先递归左半边,算出左半边答案之后,将左半边贡献到右半边,然后递归右半边。 分治是一个log的,每次暴力计算贡献是$\text O(n^2)$的,考虑用FFT优化计算贡献的过程。总复杂度变成$ 阅读全文
posted @ 2019-12-11 21:55 Fruitea 阅读(229) 评论(0) 推荐(0) 编辑
摘要: "Link" Solution 实际上是求最大伤害总和。 有一个只要有眼睛就能看出来的结论:能出强化牌就出强化牌,最后剩一张出攻击牌,当然如果强化牌不满$k$个就把强化牌出完剩下出攻击牌。因为强化牌都是大于等于1的 正整数 ,所以带来的效果是至少让伤害翻一倍那么显然尽量出强化牌。(然鹅我可能真的没眼 阅读全文
posted @ 2019-12-11 19:57 Fruitea 阅读(152) 评论(0) 推荐(0) 编辑
摘要: "Link" Solution 随便状压就可以了,设f[S]为答案,g[S]为S的最大独立集点数。对于每个S,枚举其点集内每个点作为p[1],那么选了这个点之后与其相连的所有点(记作r[i])都不能选,是个递归过程。 转移有 $f_S=\frac{\sum\limits_{i\in S}f_{S r 阅读全文
posted @ 2019-12-11 17:35 Fruitea 阅读(142) 评论(0) 推荐(0) 编辑
摘要: "Link" Solution 开始做完全没想到是线段树合并QAQ、 朴素的做法是直接树形dp。设$f[u][x]$表示在u点权值取到x的概率。 有转移: 如果x在左子树 $f[u][x]=f[ls][x]\times \sum\limits_{y\in T_{rs},yx}f[rs][y]\tim 阅读全文
posted @ 2019-12-11 10:58 Fruitea 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 线段树合并 线段树合并就是把两棵权值线段树给合并起来,复杂度$O(nlogn)$。 值得注意的是:是两棵线段树对应位置进行合并操作! 有两种写法: 这种是把y合并到x上。但是这种合并过程中有可能会破坏x,y的结构。所以适合把询问都离线下来,一合并完就回答询问。 另一种写法是类似主席树,新开节点。这种 阅读全文
posted @ 2019-12-10 19:30 Fruitea 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Splay 注意事项 0. rotate() 左旋右旋。找点规律可以写一起; splay() 利用rotate()把一个节点转到目标点的儿子处; find() 找到一个节点并把它转到根,没有这个节点那就可能是把他的前驱或者后继转上来; nxt() 利用find()找前驱、后继,把x转上来之后,暴力跳 阅读全文
posted @ 2019-12-10 19:27 Fruitea 阅读(176) 评论(0) 推荐(0) 编辑