摘要: 虚树是什么 对于一棵树,如果我们多次查询,第 \(i\) 次查询,给出树上的 \(k_i\) 个节点,查询它们公共的信息、互相的贡献等等。每次 dfs 整棵树,时间复杂度是 \(O(nT)\) 的。但是如果我们每次查询把无用的节点删除,只保留 \(k_i\) 个节点以及他们的 lca,那么最多会有约 阅读全文
posted @ 2021-08-30 12:08 BlankAo 阅读(35) 评论(0) 推荐(0) 编辑
摘要: bitset <100> bs; 设定一个长度为 100 的 Bitset。 bs.set() / bs.reset() 将 Bitset 全部赋值为 1 / 0。 bs.set(i) / bs.reset(i) 将 Bitset 第 i 位赋值为 1 / 0。 bs.count() Bitset 阅读全文
posted @ 2021-08-26 07:24 BlankAo 阅读(100) 评论(1) 推荐(0) 编辑
摘要: 建立一个虚拟偶像点比所有人强。建边 \(u\to v\) 代表 \(u\) 比 \(v\) 弱。 然后我们建立一个最长路径树,用拓扑排序实现。 这棵树有以下性质: 同一深度的所有点肯定不能确定排名,因为如果可以确定排名,那么两点间一定有非树边。此时非树边才应该在最长路径树里面,矛盾。 由此推出,可以 阅读全文
posted @ 2021-08-24 20:46 BlankAo 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 题意 链接 有 \(n\) 个物品排成一列,第 \(i\) 个物品强度为 \(a_i\)。每一秒会随机选择两个相邻的物品相撞,强度较小的那个会破碎,被移除队列(即原本不相邻的物品可能会现在相邻)。求每个物品存活时间的期望。 $O(n^2) $ 解法 设 \(P(i=x)\) 为某物品存活时间等于 \ 阅读全文
posted @ 2021-08-15 16:59 BlankAo 阅读(123) 评论(0) 推荐(1) 编辑
摘要: 1 线性基 不会。 2 字典树 用 Trie 解决 xor 的核心思想就是:贪心地选相反的一位。下面通过题目说明。 2-1 超水例题 题意 给你 \(n\) 个数 \(a_i\),\(T\) 次询问,每次询问一个数 \(x\),求选取一个 \(a_i\) 使 \(a_i \text{\ xor\ } 阅读全文
posted @ 2021-08-07 12:18 BlankAo 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 基础知识 概率定义 \(P(A)\) 为事件 \(A\) 发生的概率, \(P(A|B)\) 为在 \(B\) 事件发生的前提下 \(A\) 事件发生的概率。 概率性质 加法公式:\(A,B\) 独立,则 \(P(A\or B)=P(A)+P(B)\)。( \(P(A\or B)\) 就是 \(A\ 阅读全文
posted @ 2021-07-19 21:39 BlankAo 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 对于若 \(A\) 则 \(B\),连边 \(A\to B\)。 故可推出: \(A\) 一定成立,连边 \(\neg A\to A\)。 \(A\) 一定不成立,连边 \(A\to \neg A\)。 \(A\) 或 \(B\),连边 \(\neg A\to B,\neg B\to A\)。 \( 阅读全文
posted @ 2021-07-19 17:16 BlankAo 阅读(44) 评论(0) 推荐(0) 编辑
摘要: ABC210F - Coprime Solitaire 原题链接 看到这种两面性问题,显然想到 2-SAT。 给每个质数设置一个集合。(\(2\times 10^6\) 之内的质数有 \(148933\) 个) 先把每一个数字都质因数分解,如果某个数有质因数 \(x_1,x_2...\) ,就把这个 阅读全文
posted @ 2021-07-18 09:11 BlankAo 阅读(278) 评论(3) 推荐(0) 编辑
摘要: 性质 约定两个点 \(p,q\) 的 "麦ax值" 定义如下。设 \(p\) 到 \(q\) 的一条路径贡献是路径上最大的边权,则其 "麦ax值" 为 \(p\) 到 \(q\) 的众多路径中贡献最小值。 原图的节点都是重构树的叶子节点。 任意两个节点的 LCA 就是此两点在原图上的 麦ax值。 一 阅读全文
posted @ 2021-05-23 10:55 BlankAo 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 感谢大佬 @w33z8kqrqk8zzzx33! 用块状链表实现平衡树,是怎么回事呢?快来跟小编看看吧~ 前置知识 vector 的部分用法 vector 就是变长数组。由于 STL 制作者们八仙过海,所以它的一些操作常数极小(相比于普通数组)。 首先注意,vec 的第一个位置下标是 0;而且大多函 阅读全文
posted @ 2021-05-01 14:04 BlankAo 阅读(174) 评论(0) 推荐(1) 编辑
摘要: 广告 是否遇见字符串就头疼? 是否在阅读 SAM 时被 endpos 和 parent-tree 搞得心肌梗塞? 而后缀树可以解决您的困扰! 它更像是压缩了的 AC自动机,但是可以和 SAM 一样用。它的 LCA 是后缀的最长公共前缀,遍历它的 dfs序 是 SA! 而且,它比 SAM 更容易理解, 阅读全文
posted @ 2021-04-09 23:21 BlankAo 阅读(62) 评论(2) 推荐(0) 编辑
摘要: #define lon long long #define Dinv(x) Dpow(x,mo-2) #define die(x) memset(x,0,sizeof x) lon Dpow(lon p,lon q){ lon tot=1; while(q){ if(q&1)tot=tot*p%mo 阅读全文
posted @ 2021-03-09 21:46 BlankAo 阅读(45) 评论(0) 推荐(0) 编辑
摘要: \(\Large\natural\) P4169 [Violet]天使玩偶,SJY摆棋子 \ 原题链接 题意 由于特殊原因,加了个题意简述 一开始有 \(n\) 个关键点 \((a,b)\)。然后有 \(T\) 个操作: 多出一个关键点 \((a,b)\)。 询问如果我站在 \((x,y)\),最近 阅读全文
posted @ 2021-03-09 20:25 BlankAo 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 跟着大佬脚步学习:D Miller-Rabin 题目 给你一个数字 \((z\le10^{18})\),判断它是不是质数。 公式 费马小定理:( \(p\) 为质数) \[ a^{p-1}\equiv1\pmod p \] 通俗地讲是 \(a^{p-1}\bmod p=1\),但是逆定理不一定成立( 阅读全文
posted @ 2021-02-21 08:59 BlankAo 阅读(54) 评论(0) 推荐(1) 编辑
摘要: ![](https://s3.ax1x.com/2021/02/15/y6RU0O.png)---![](https://s3.ax1x.com/2021/02/15/y6Ra7D.png)---![](https://s3.ax1x.com/2021/02/15/y6RwAe.png) 阅读全文
posted @ 2021-02-15 21:43 BlankAo 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 最大流 略。 update:我发现我的最大流一直是写错的!!写错一年了!!这一年居然没有被卡真是奇迹…… #include<bits/stdc++.h> #define rep(i,x,y) for(int i=x;i<=y;++i) #define mar(o) for(int E=fst[o]; 阅读全文
posted @ 2021-02-09 19:50 BlankAo 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 这回不鸽了 思路 样子 abaaba 回文自动机 PAM 由两棵树组成。第一棵树根(偶根)的 \(len\) 为 0 ,代表着长为偶数的回文串;第二棵树根(奇根)的 \(len\) 为 -1,代表着长为奇数的回文串。注意:偶根代表的是空串,奇根无实际意义。 边代表的字母,表示它的回文串是“父亲节点对 阅读全文
posted @ 2021-02-08 11:34 BlankAo 阅读(83) 评论(0) 推荐(1) 编辑
摘要: upd:学会后缀树了,所以这东西就扔了 不是很理解 struct deme{int len,fa,to[26];}dot[m7]; void insert(int ch){ cnt++; int p=las,np=cnt;las=np; num[np]=1; dot[np].len=dot[p].l 阅读全文
posted @ 2021-02-07 15:55 BlankAo 阅读(38) 评论(1) 推荐(0) 编辑
摘要: \(\Large\natural\) CF1207G Indie Album \ 原题链接 解法 这种题算是比较套路的了,我们看见这种多字符串匹配,会想到AC自动机。 如果不会AC自动机的可以看看 我的博客 ,希望能给您带来帮助。 那么如果我们对于所有字典树节点连边 \(i-fail_i\)(根节点 阅读全文
posted @ 2021-02-04 22:03 BlankAo 阅读(69) 评论(0) 推荐(0) 编辑
摘要: \(\Large\natural\) CF163E e-Government \ 原题链接 解法 这种题算是比较套路的了,我们看见这种多字符串匹配,会想到AC自动机。 如果不会AC自动机的可以看看 我的博客 ,希望能给您带来帮助。 那么如果我们对于所有字典树节点连边 \(i-fail_i\)(根节点 阅读全文
posted @ 2021-02-04 22:02 BlankAo 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 好题单%A-C-L AC自动机问题 电光火石后,只见 \(n\) 个字符串 \(S\) 袭来,而你唯一能做的是,在你手上捧着的字符串 \(T\) 中,找到每个 \(S\) 各自出现了几次。 \(n\le 10^5,|T|,\sum|S|\le2\times10^6\) 简思路 思考一下 KMP,我们 阅读全文
posted @ 2021-02-04 15:50 BlankAo 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 可能只有这一讲的笔记了……QAQ 二维区间DP 听到名字就显然了,故略。 四边形不等式 讲解 有一类常见DP问题,通常是区间DP,转移方程都是 \(\large f_{i,j}=min\{f_{i,k}+f_{k+1,j}+w_{i,j}\}\) 显然枚举 \(i,j,k\) 是 \(O(n^3)\ 阅读全文
posted @ 2021-02-01 13:33 BlankAo 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 考 2020csp 那天早上,在洛谷提交框那里写 【模板】线段树1 然后AC 2020.1.29 GDKOI早上先照着以前的提交记录打了一遍树链剖分,然后说要不编译 AC 树链剖分,打了一半就去 GDKOI 了…… GDKOI爆炸后继续树链剖分,然后AC 2021.9.5 在家里用 不编译 AC L 阅读全文
posted @ 2021-01-29 13:30 BlankAo 阅读(54) 评论(2) 推荐(0) 编辑
摘要: % CDW 前置知识 多项式 \(f(x)=\sum\limits_{i\ge 0}^n a_ix^i\) 求导 ? 积分 ? TayLor 展开 ? 生成函数 基本 对于一个数列 \(\{a\}\) ,把其当做多项式的系数,故 \(A(x)=\sum\limits_{k\ge 0}a_kx^k\) 阅读全文
posted @ 2021-01-27 22:16 BlankAo 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 因为听某一块肉饼说 FHQ平衡树 好学,于是就来试一试…… 待填 updat: 艹调了几天Splay还没调出来,先过了……😂 阅读全文
posted @ 2021-01-22 23:10 BlankAo 阅读(51) 评论(1) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> #define rep(i,x,y) for(int i=x;i<=y;++i) #define per(i,x,y) for(int i=x;i>=y;--i) #define lon long long using namespace std; c 阅读全文
posted @ 2021-01-19 17:55 BlankAo 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 非常感性简单地理解带权二分(又名 wqs 二分),尽管不是很严谨,如有错误请指出 \(\Large\natural\) Gosha is hunting / 原题链接 / 更好阅读体验 解法 设我们有 \(A\) 个红球和 \(B\) 个蓝球,用红球抓 \(i\) 号胖可丁的概率是 \(a_i\), 阅读全文
posted @ 2021-01-18 19:12 BlankAo 阅读(161) 评论(0) 推荐(1) 编辑
摘要: \(\Large\natural\) P4244 [SHOI2008]仙人掌图 \ 原题链接 解法 一开始看见仙人掌,按套路要建出圆方树,但后来发现其实是不用建的。 回想一下求普通树的直径时候的 \(\text{dp}\) 方法,可爱而无害。 设 \(o\) 为当前 \(\text{dfs}\) 到 阅读全文
posted @ 2021-01-07 09:18 BlankAo 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 思路 你最终会得到图的一棵生成树,然后 \(a,b\) 两点的最小割即是生成树上 \(a,b\) 间路径中,权值最小的那条边。 很神奇。那你怎么建出这个树来呢? 首先,最小割等于最大流。你需要一个 \(\text{Dinic}\) 模板。 故此,你在当前的点集中选定随意选定两个点 \(a,b\),求 阅读全文
posted @ 2021-01-04 21:40 BlankAo 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 待填。。。现存代码 仙人掌的圆方树 模板题 #include<bits/stdc++.h> #define rep(i,x,y) for(int i=x;i<=y;++i) #define per(i,x,y) for(int i=x;i>=y;--i) #define mar(o) for(int 阅读全文
posted @ 2021-01-04 21:39 BlankAo 阅读(214) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.com.cn/training/4771#problems T1 裸题 T2 裸题 T3 裸题(就是模板) T4 裸题 T5 裸题 T6 加上一个贪心,题解 T7 不会 阅读全文
posted @ 2021-01-03 22:13 BlankAo 阅读(69) 评论(0) 推荐(0) 编辑
摘要: \(\Large\natural\) CF343E Pumping Stations / 原题链接 解法 前置知识点:最小割树。如果没有学过,可以去看看模板题。 首先求出最小割树。然后,我们设 \(c_{i,j}\) 代表点 \(i\) 到点 \(j\) 的最小割。那么问题就转化为了: 你有一个完全 阅读全文
posted @ 2021-01-03 22:08 BlankAo 阅读(143) 评论(0) 推荐(0) 编辑
摘要: - 目录 - orz / 按照这个题单刷的 可乐 / 物流运输 / 区间加区间sin和 可乐 解法 停留相当于给自己点建一个自环,然后走这条边。 自爆相当于建一个大点 \(n+1\) ,所有点向大点连向一个有向边,这样就有去无回了! (所以如果现在机器人panda在东京上野的动物园这个地方自爆,那么 阅读全文
posted @ 2020-12-19 08:30 BlankAo 阅读(88) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-11-28 11:07 BlankAo 阅读(9) 评论(0) 推荐(1) 编辑
摘要: 按照 这个题单 做的。 有一些单独发了题解(前三题浓缩在了我的一篇文章中),在这里就不说了。 准备填坑。 准备没事做了再打,因为感觉它们思路简单却代码长,懒啊…… 如果有什么建议请在评论区纠正我,感谢! rot-tree (已做) 给每个点创造一个权值线段树。点 $o $ 的线段树代表以 \(o\) 阅读全文
posted @ 2020-11-21 14:19 BlankAo 阅读(124) 评论(0) 推荐(1) 编辑
摘要: \(\Large\natural\) P5384 [Cnoi2019]雪松果树 / 原题链接 其实这道题就是 Blood Cousins 的超级加强版。 不理解算法的先看看上面的题解,这里不再阐述。 下面开始 毒 瘤 优 化 之 路 。 毒瘤优化之路 更高效地处理询问 Blood Cousins 那 阅读全文
posted @ 2020-11-20 20:27 BlankAo 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 友链 在我的驱动下许多朋友都用上了这个主题,而且我们必将把这个主题发扬光大!(因为实在是太好看了) 下面是将主题发扬光大的时代先驱们: \(\color{green}{\huge\texttt{Realityang}}\) \(\color{pink}{\huge\texttt{蒟蒻丁}}\) \( 阅读全文
posted @ 2020-11-19 22:52 BlankAo 阅读(257) 评论(1) 推荐(1) 编辑
摘要: \(\Large\natural\) AT3965 [AGC025B] RGB Coloring / 原题链接 思路 首先,明显地,我们可以把绿色看成同时涂上红色和蓝色。这样得分仍为 \(A+B\)。 所以红色和蓝色就独立了,即它们互不影响(转化前是一个格子涂了红色就不能再涂蓝色,不是独立的)。 所 阅读全文
posted @ 2020-11-19 12:55 BlankAo 阅读(92) 评论(1) 推荐(1) 编辑
摘要: \(\Large\natural\) CF208E Blood Cousins / 原题链接 思路 这道题,我们可以考虑用 线段树合并 做。 首先,我们把询问离线存储起来,并且用倍增算法求出每个询问中,每个点的 \(K\) 辈祖先是谁。这样,题目就转化为了 “求某个点有多少个 \(K\) 辈儿子” 阅读全文
posted @ 2020-11-17 16:57 BlankAo 阅读(154) 评论(0) 推荐(1) 编辑
摘要: 被数论搞自闭了,于是来搞数据结构…… 例题:雨天的尾巴 基础操作是,求出 \(x\) 到 \(y\) 的 \(\textbf{lca}\) ,进行树上差分,最后统计答案。但是怎么存储呢? 首先想,给每一个点开一个桶,在操作时给相应的粮食种类加一。然而这样数组要开10w*10w,炸了。 所以引出正解: 阅读全文
posted @ 2020-11-15 13:01 BlankAo 阅读(178) 评论(0) 推荐(0) 编辑