随笔分类 - 题目
摘要:考虑最小割。不妨把问题简化成两个人去看。根据最小割建模的套路,易画出类似这样的图: 其中,$s,t$ 分别为源汇点,$x,y$ 均各自代表了一个经理。最小割中,割掉 $a$ 看作雇佣了 $x$,割掉 $c$ 看作不雇佣 $x$,$y$ 同理。 发现图中还有一个 $e$。我们割掉 $e$ 当且仅当 $
        阅读全文
                
摘要:不妨先看一个子问题:太空飞行计划问题,它就是广为人知的“最大权闭合子图”模型。 在这道子问题中,仪器(机器)不能租用。我们考虑一个反悔的过程——开始先把所有实验的贡献算上,之后利用最小割模型去掉最小代价使得方案合法。 在最小割模型中,我们把所有实验、仪器都分别看成一个点。其中,源点向所有实验连一条容
        阅读全文
                
摘要:考虑每个 # 的位置使用一块木板,之后进行一些调整。 对于每次调整,我们合并两块木板,使得合并完后木板依旧合法。 这个合并的过程考虑使用二分图的最大独立集。 具体的,我们把相邻的两个 # 之间连边,把边看做新图上的点。对于新图上的点 $u1$(假设它在原图上的对应边为 $l1$),它在新图上会和一个
        阅读全文
                
摘要:不妨设 $a\leq b\leq c$,则此时让集合 $A,B$ 联通的限制一定是最松的。于是我们的任务就是找出两个大小分别为 $a,b$ 的连通块。 需要知道的一点:假设我们找到了一个大于目标大小的连通块,构造时只需要一个一个地把叶子剥掉直至大小合法就行了。 先考虑原图是树的情况。由于 $b\le
        阅读全文
                
摘要:首先,棋子的颜色分黑和白,是一个标准的二分图形式。 其次,我们对操作进行观察,易得出:一个空位到过的位置之后不会再走了(考虑操作步骤的奇偶性以及棋子的颜色)。 于是我们大胆想象:移动棋子等价于移动空格,既然一个空格走了就不会再回到原来的位置,那么只需要把一个位置看成一个点(空格为初始位置),问题就可
        阅读全文
                
摘要:不难发现题面描述的比较特殊:给出了一个结论以及它的证明。 我们从中获得启发,对它进行了一个归纳总:一张 $n$ 个节点的完全图中,一定存在一条长度大于等于 $n-1$ 单调上升路径。 考虑把边划分成 $\frac{n}{2}$ 个小组之后(组内边不想交),我们可以对于同个中的边赋连续区间的值,这样就
        阅读全文
                
摘要:分两部分考虑,第一部分是如何用最少的边使得每个点的度数、图的总边数都变成偶数;第二部分是如何进行具体的构造。 其中第一部分的构造又可以考虑先满足每个点的度数为偶数,再满足总边数为偶数。 满足每个点的度数为偶数这点比较好做:可以每次从度数为奇数的点中任选两个,在它们之间连一条边。 由于于度数为奇数的点
        阅读全文
                
摘要:我们利用 $\text{kruskal}$ 的贪心思想去做这道题。 先考虑“一定不可能在任何 $\text{MST}$ 上”的情况。钦定用 $\text{kruskal}$ 形成的 $\text{MST}$ 为 $T$、当前考虑的边为 $e$、以及 $T$ 上在加入 $e$ 后与 $e$ 形成的简单
        阅读全文
                
摘要:考虑利用 $\text{KMP}$ 辅助进行贪心。 先预处理出 $t$ 所有前缀的 $\text{border}$,也就是熟知的 $next$ 数组。然后在 $s$ 上做一个贪心的匹配——假若 $s$ 剩余的字符中还存在能和 $t$ 中匹配的字符,那必定优先选它;否则之后只有一种可能,就是一直取同样
        阅读全文
                
摘要:我们对数据进行观察/分析归纳,易得出要么 $k\leq 2$,要么无解。 采用构造法证明: 先排除无解的情况:若 $s$ 为偶回文,那么所有字符相等必定无解;若为奇回文,则除去中心字符以外的所有字符相等时无解。 对于剩下的情况,从前往后找到第一个与 $s_1$ 不同的字符(下标从 $1$ 开始),设
        阅读全文
                
摘要:不妨先对题目进行如下转化: 把座位首尾相接排成一个圈,$1$ 号座位与 $n$ 号座位之间用一个编号为 $n+1$ 的座位进行间隔,求一种方案使得没有人座到 $n+1$ 的位置上去。 由于座位之间本质是相同的,故而有: 一个人从任意一个起点选择任意一个方向的方案数是 $(2(n+1))^m$。 每个
        阅读全文
                
摘要:做法 首先,不难将题目转化为:给定一些物品(连通块),物品有体积(连通块大小),对于每个 $x$,求最少几件物品能恰好装满一个容积为 $x$ 背包。 体积相同的物品我们视其为同一种。所以这是一个多重背包问题。利用二进制分解可以做到 $O(n\sqrt n)$。 时间复杂度证明 假设第 $i$ 种物品
        阅读全文
                
摘要:首先,不难得出选 YES 答对的概率是 $\frac{N}{N + M}$,选 NO 答对的概率是 $\frac{M}{N+M}$。 于是我们有如下结论: 假设 $N > M$,我们必定选 YES;相反 $M > N$,则必定选 NO。 由于 YES 和 NO 没有本质之分,同时出于简化问题的考虑,
        阅读全文
                
摘要:由于是取平方和,所以有明显的结论:一定存在一种最优方案,第 $1$ 列是全 $1$ 的。 这个结论看似没什么用,但却可以反应出如下性质: 定义“可取的位置”为:此时其所在区间还没有 $1$ 的位置。那么答案必定是按照 某个优先级从大到小,逐列把列上所有“可取的位置”都变为 $1$。 拿样例解释一下,
        阅读全文
                
摘要:题意 给出一颗 $n$ 个节点的树以及 $Q$ 个操作,操作可能的类型如下; 1 u,把 $u$ 子树里的所有 $A_i$ 加一。 2 u v,把 $u$ 到 $v$ 路径上的所有 $A_i$ 加一。 每次操作后查询如下式子:$$ \min_{1 \leq y \leq n}\sum_{1 \leq
        阅读全文
                
摘要:首先,不难发现如下性质:提任意点为根——记一个点的到子树重心的距离为 $d_i$,假设点 $i$ 和点 $j$ 处于根的不同子树中,那么显然:$(i,j)$ 路径上的权值和为 $d_i+d_j$;假若点 $i$ 和点 $j$ 处于根的同一颗子树中,又满足 $d_i+d_j$ 大于 $(i,j)$ 路
        阅读全文
                
摘要:树上启发式合并题。 首先,要找到判断一个字符集是否存在重构成回文串的方法。 能重组成回文串仅当只存在至多一种字符的出现次数为奇数。 我们令 $a_u$ 表示 $1\to u$ 路径上的字符集的二进制状态。具体的,从右往左数第 $1$ 位表示字符 $a$ 的出现次数是否为奇数;从右往左第 $2$ 位表
        阅读全文
                
摘要:此做法用到 $\text{Trie}$ 和 $\text{DP}$。 首先,先对操作进行一个简单的转换: $2x+1$ 等价于在 $x$ 的二进制串后面加上一个 $1$。 例如:$x=5,2x+1=11$,等价于在 $5$ 的二进制 $101$ 后面加上一个 $1$ 得到 $1011$,即 $11$
        阅读全文
                
摘要:思路 本题的线段树分治做法显然:维护每个元素存在的时间段,然后每进入线段树的一个节点时在 Trie 树上花 $\log V$ 的时间求出已有元素与它的最小异或值,放入一个堆中。离开一个节点时在堆中删除之前加入的最小异或值。 可删除堆实际上要用两个普通堆维护,代码如下: struct Large_Ro
        阅读全文
                
摘要:思路 有向图 $G(V,E)$ 中的强连通分量数量等于以下值: 将 $G$ 的顶点集 $V$ 分成两个顶点集 $A$ 和 $B$ 的方案数,满足以下条件:$A$ 中的顶点与 $B$ 中的顶点之间的每条边都是从 $A$ 指向 $B$,且 $B$ 非空。 证明:设 $s_1,s_2 ,…,s_k$ 是 
        阅读全文
                
                    
                
浙公网安备 33010602011771号