摘要: tag:树形dp \(n^3\) 暴力,设 \(f_{i,j}\) 表示 \(i\) 的关键点为 \(j\)。 转移时枚举 \(x\) 的关键点和 \(son\) 的关键点,转移条件即为满足关键点的性质(关键点为所有源点中离它最近的) \(dis(x,p_x)\le dis(x,p_{son})\) 阅读全文
posted @ 2021-06-24 20:22 oisdoaiu 阅读(25) 评论(0) 推荐(1) 编辑
摘要: tag:背包dp,插值 考场50分,对着数据怀疑人生一个小时,然后教练过来说数据挂了。。 然而下发的标程也挂了,又怀疑人生了一个小时。。 对于 \(40%\) 很容易就能想到枚举 \(m\),然后跑背包dp。 仔细观察这个dp是形如: \[ \sum_{S\subseteq\{1\cdots n\} 阅读全文
posted @ 2021-06-24 20:21 oisdoaiu 阅读(35) 评论(0) 推荐(1) 编辑
摘要: tag:二分,模拟,李超线段树,倍增 max的变化只有最多n次,直接模拟。。 用二分可以找出每个点作为mx的时间段,然后用倍增去跳 #include<bits/stdc++.h> using namespace std; template<typename T> inline void Read(T 阅读全文
posted @ 2021-06-24 16:44 oisdoaiu 阅读(27) 评论(0) 推荐(0) 编辑
摘要: tag:高斯消元,多项式,二分图 首先要知道如何用矩阵求完美匹配数量。。。 就是邻接矩阵(\(a_{i,j}=1\) 表示左边的 \(i\) 和右边的 \(j\) 连边)的积和式,也就是这个东西: \[ \sum_{\sigma}(\prod a_{i,\sigma_i}) \] 其实就是把行列式的 阅读全文
posted @ 2021-06-24 16:43 oisdoaiu 阅读(39) 评论(0) 推荐(0) 编辑
摘要: tag:贪心,扫描线 对于只有一种器材的情况,贪心就是按照右端点从大到小扫,每次找到左端点最大的,把当前点分配给他。 对于每个器材,都这样处理,然后将分配点设为新的右端点。这样处理以后还是能够得到原来能够得到的每一种方案。 不妨假设每个人就选择在右端点那一天,然后找到选择点最小的那个人,对于其他每一 阅读全文
posted @ 2021-06-24 16:41 oisdoaiu 阅读(16) 评论(0) 推荐(0) 编辑
摘要: tag:组合计数,根号分治 注意到有两种方法计算答案 dp,\(f_i\) 比 \(f_{i-1}\) 多一个 \(f_{i-k}\) 的转移点,所以 \(f_i=f_{i-1}+f_{i-k}\) 将一个黑点和前面的 \(k\) 个绑定成一组,枚举有几组,求组合数 单次复杂度分别为 \(O(n)\ 阅读全文
posted @ 2021-06-24 16:39 oisdoaiu 阅读(25) 评论(0) 推荐(0) 编辑
摘要: tag:概率期望,bit,dfs序 考虑每一条实链 \((u,v)\)(\(v\) 为 \(u\) 的祖先) 的贡献。如果最终有一条极长实链 \((u,v)\),那么对于 \(v\) 子树中所有点,\(u\) 一定是操作序列中最后一个;同样的对于 \(fa_v\) 子树中所有点,\(v\) 一定不是 阅读全文
posted @ 2021-06-24 16:37 oisdoaiu 阅读(27) 评论(0) 推荐(0) 编辑
摘要: tag:数论,杜教筛,类欧函数,莫比乌斯反演 改一下,求 \(\frac ij\le \frac ab\)。 先莫反一下,方便求。 \[ \sum_{gcd(i,j)=1}\frac ij\le\frac ab \] \[ \sum_{d}\mu(d)\sum_{i=1}^{\left\lfloor 阅读全文
posted @ 2021-06-24 16:35 oisdoaiu 阅读(23) 评论(0) 推荐(0) 编辑
摘要: tag:轮廓线dp 手玩一下会发现,最少需要4个镜子才能减少答案,多玩一下就能发现,减少的答案就等于镜子形成的回路长度。 \(ans=4nm-2len\) 为了计算这个东西,可以理解为,从镜子射出光线,然后贡献就是那些没有到达边界的光线的总长度。 然后问题就变成了,放 \(k\) 个镜子,形成的封闭 阅读全文
posted @ 2021-06-24 16:34 oisdoaiu 阅读(38) 评论(0) 推荐(0) 编辑
摘要: tag:后缀树 建出后缀树,那么答案一定是叶节点。 dfs后缀树,每次走向的那条边的字符一定大于所有其他边的字符,就连一条边过去。 最后看一看有没有环。(传递闭包后自己大于自己) 复杂度 \(O(|S|^2n)\),\(S\) 为字符集,实际跑得挺快。 评测姬数据有问题,输入得用while(~sca 阅读全文
posted @ 2021-06-24 16:20 oisdoaiu 阅读(33) 评论(0) 推荐(0) 编辑
摘要: tag:指数型生成函数,多项式ln 首先考虑一般带标号连通无向图怎么求。 设 \(f(x)\) 为一般带标号连通无向图个数,\(g(x)\) 为一般带标号无向图个数。 设 \(F(x)=\sum\frac{f(i)x^i}{i!},G(x)=\sum\frac{g(i)x^i}{i!}\),则 \( 阅读全文
posted @ 2021-06-24 16:16 oisdoaiu 阅读(29) 评论(0) 推荐(0) 编辑
摘要: tag:构造 答案为no只有两种情况: 有一个颜色没有出现过 两个相邻的点同色 其他情况一定是yes。 具体构造方案为:每次找到一组连续 \(3\) 不同色的点,且中间那个点的颜色出现多于1次,然后将这个三角形切掉,继续递归处理。 这样一次操作之后显然是不会违反上述性质的。 代码实现可以使用一个数组 阅读全文
posted @ 2021-06-24 16:04 oisdoaiu 阅读(29) 评论(0) 推荐(1) 编辑
摘要: tag:贪心 首先选择 \([n+1,2n]\),然后倒叙枚举 \(n\to1\),对于每个数 \(i\),如果 \(i\) 的所有倍数中,只有 \(1\) 个被选中了,那么就可以用 \(i\) 去替换那个倍数。 #include<bits/stdc++.h> using namespace std 阅读全文
posted @ 2021-06-24 16:02 oisdoaiu 阅读(26) 评论(0) 推荐(1) 编辑