03 2020 档案
摘要:"$Question$" 题目大意:边权版本树形$dp$,求保留$Q$条边,使得其边权和最大。当然,必须联通。(要不就不是$dp$了) 那考虑设计$dp[i][j]$表示第$i$个节点,选择$j$条边的最佳方案。 写出方程为: $$dp[i][j]=\max_{v\in son[i]}dp[i][j
阅读全文
摘要:"$Question$" 题目大意:给一颗有边权有点权的树,点权为正,边权为负,求出一个连通块,使得其块内权值之和非负,且包含叶子数最多。(点权只在叶子上) 设计$dp_{i,j}$表示第$i$个点,选择$j$个叶子的最大权值。 那么,枚举每一个点,及其子节点,当递归到底时,$dp[i][1]=v[
阅读全文
摘要:"Question" 题目大意:每个点不是黑点就是白点,求以每一个点为根时,选择出一个联通块,使得白点数与黑点数之差最大(白减黑)。 $Solution$ 考虑先跑一遍$dp$. 可以写出一个比较显然的方程:$dp_i=val_i+\sum_{j\in son[i]}max(0,dp_j),val_
阅读全文
摘要:"$Question$" 题目大意:给一个颜色序列,待修改,求区间颜色段数。 $Solution$ 考虑线段树合并。 对于每一个颜色建一个线段树,维护每个颜色出现的位置。同时维护区间的颜色段数,以及最左端、最右端的颜色位置。 于是,对于合并颜色$x,y$.,·将它们对应线段树合并即可。合并时,当一树
阅读全文
摘要:"$Question$" 题目大意:给$n$个点及其权值,每次并两个点,会形成一些联通块,求一个点所在联通块的权值第$k$小的点的编号。 读起来比较绕口,但实质就那么几个:插入,合并,求第$K$小。 我们可以想到用线段树合并。而维护连通性,可以用那个代码量小,短小精悍的数据结构:并查集。 具体来说,
阅读全文
摘要:模拟退火,很有力的一个偏分武器。 对于一类搜索,或者是有明确答案空间的题目,且不会写正解,爆搜过不去,剪枝减不了的时候,我们可以考虑用模拟退火偏分。 模拟退火模拟的是一个物理过程,即一个物体由高温逐步降温的过程。也可以理解为,在我们寻找答案的过程中,答案所存在的范围越来越小,以此类比降温。 也就是说
阅读全文
摘要:"题目链接" 题目大意:有一颗树,有点权,每次询问:一条路径$x y$中与$z$异或的最大值,或是以$x$为根的子树中与$y$异或的最大值。 树剖……还是算了。 观察到,子树的$dfn$序是连续的一段区间。于是我们可以预处理$dfs$序来解决这个问题。 第二问,我们可以求两点的最近公共祖先,做一个树
阅读全文
摘要:求序列通项公式的一个方法。 二阶齐次线性递推式: 考虑一个序列$a_n=Aa_{n 1}+Ba_{n 2}$的通项公式。 设$x,y$则有: $a_n xa_{n 1}=y(a_{n 1} xa_{n 2})$ 意义就是构造一个等比数列。 继续推: $a_n=(x+y)a_{n 1} xya_{n
阅读全文
摘要:~~谁知道一个学了快两年oi的菜鸡现在才学对拍……还不是因为之前比赛没写对拍死的太惨了~~ $Windows$下比较常用的是$\text{.bat}$形式的对拍程序。码量比较少,但是需要写文件读入读出。 当程序$\text{error}$的时候,不会突出显示。所以时不时要看一眼。出错的数据也不会输出
阅读全文
摘要:"题目链接" 题目大意:给定一个集合$S$,给一个限制条件$P$,要求划分集合,使得每一个子集$A\in S$,$A$满足限制条件$P$,且划分总数最小。 注意到数据范围$n using namespace std; //设计g[i]表示状态为i的背包最大容量 //f[i]表示状态为i的最小划分数
阅读全文
摘要:"题目链接" 题目大意:给定一张图(四联通),求图上从$A$点走完所有$key$点的最短路径, 输出字典序最小的路径 。 这里用一个小$trick$:求出所有关键点两两之间的距离,就可以把图给扔了。 考虑到$key$点的数量很少,考虑一波状压。 设计状态$dp[i][j]$表示当前点在$j$,状态为
阅读全文