随笔分类 -  技巧-建图策略

摘要:题目 点这里看题目。 给定两棵树 $A,B$,两棵树均包含 $n$ 个结点。结点编号均从 $1\sim n$。 现在需要给每个编号分配一个权值,使得两棵树上的任意子树内,所有的结点编号对应的权值之和都为 $1$ 或 $-1$。 构造任意一种方案,或声明无解。 所有数据满足 $1\le n\le 10 阅读全文
posted @ 2023-01-15 19:25 crashed 阅读(59) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-06-04 19:41 crashed
摘要:是不是 nb 的网络流题都不喜欢纯建图 阅读全文
posted @ 2022-03-16 21:57 crashed 阅读(79) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-03-15 23:13 crashed
该文被密码保护。
posted @ 2022-02-11 08:55 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 先考虑枚举一个骨牌并将它取下来。这样,一个空格就可以通过周围的骨牌来向各个方向移动。 注意到,我们可以选取最终局面上的一个空格,并找出它原先在哪里——看一下初始平板上这个空格对应的字符,就可以确定现在这块骨牌向哪个方向移动了,我们就可以逆向操作;一直循环直到这个空格属于取 阅读全文
posted @ 2021-10-18 19:49 crashed 阅读(47) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 最初,我们可以猜想直接将志愿者需求 \(a_i\) 当作容量建边;但问题也很显然,即一个志愿者流量只有 1 ,我们却需要他的流量在多余一条边中被计算。 此时就需要更换思路:我们要做减法。平时我们通过流的叠加并达到流量上界满足要求,现在我们要求将流退掉,从而在最大流的前提下 阅读全文
posted @ 2021-01-06 22:25 crashed 阅读(89) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 这道题真的很经典。 如果没有光滑性的限制,我们发现这是个弱智贪心最小割问题。每一个位置切割的代价可以转移为边的容量。 因此我们可以很容易地建图,除去源汇共 \(PQ(R+1)\) 个点,用 \((a,b,c)\) 表示第 \(a\) 层上第 \(b\) 行第 \(c\) 阅读全文
posted @ 2020-12-29 16:52 crashed 阅读(95) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 经典的一类最小割问题。 首先不难确定问题的方向是最小割,以下我们认为 \(u\in S\) 表示种在 \(A\) 田, \(u\in T\) 表示种在 \(B\) 田。 考虑如果没有合种的额外贡献,我们可以对于每个点,连接 \(S\overset{a_u}{\righta 阅读全文
posted @ 2020-12-28 20:49 crashed 阅读(88) 评论(0) 推荐(0)
摘要:题目 点这里看题目;以下是简述 小 N 手上有一个 \(N\times M\) 的方格图,控制某一个点要付出 \(A_{ij}\) 的代价,然后某个点如果被控制了,或者他周围的所有点(上下左右)都被控制了,那么他就算是被选择了的。一个点如果被选择了,那么可以得到 \(B_{ij}\) 的回报,现在请 阅读全文
posted @ 2020-12-28 20:37 crashed 阅读(91) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 首先由于每个士兵有两种选择,因此我们考虑最小割。 但是,与一般的最小割问题不同,不论士兵怎么搭配都会有贡献。为了进一步思考,我们不妨画出常见的基本图: 假如 \(u\in S\) 表示 \(u\) 作为战士, \(u\in S\) 表示 \(u\) 作为法师。 假如我们最 阅读全文
posted @ 2020-12-26 16:40 crashed 阅读(122) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 首先,对所有子集的权值取反,问题变成了求最大的权值和,可以尝试最小割。 这里的最小割就类似最大闭合权子图。将子集和元素都抽象成一个点,对于集合 \(U\) 和 \(u\in U\) ,连接 \(U\overset{+\infty}{\rightarrow} u\) ;对于 阅读全文
posted @ 2020-12-26 16:00 crashed 阅读(93) 评论(0) 推荐(0)
摘要:最大流 上下界网络流 对于该问题的图 \(G'\) ,对于每条边 \((u,v)\in E\) ,有两个容量限制 \(c_l(u,v)\) 和 \(c_u(u,v)\) 。可行流必须满足: \[ \forall (u,v)\in E,c_l(u,v)\le f(u,v)\le c_u(u,v) \] 阅读全文
posted @ 2020-12-26 14:42 crashed 阅读(161) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 建图有两个重要的条件需要注意: 弹道可能变成了折线; 控制每个格子最多被穿过一次; 常规的最大流/费用流做法不方便处理第一个点,我们不妨尝试最小割。 第二个点就意味着,每个格子要么被纵向穿过,要么被横向穿过。此时每个格子就存在两种选择,恰好对应 " 属于 \(S\) " 阅读全文
posted @ 2020-12-25 19:01 crashed 阅读(168) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 BZOJ GG 了,所以链接在 dark 上面。 题面: 你去找某 bm 玩,到了门口才发现要打开他家的大门不是一件容易的事…… 他家的大门外有 \(n\) 个站台,用 \(1\) 到 \(n\) 的正整数编号。你需要对每个站台访问一定次数以后大门才能开启。站台之间有 \(m\ 阅读全文
posted @ 2020-12-22 18:19 crashed 阅读(92) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 不难发现: \[ |\sum_{i=1}^n(A_{ij}-B_{ij})|=|\sum_{i=1}^nA_{ij}-\sum_{i=1}^nB_{ij}| \] 行求和同理;于是可以发现 \(\sum A_{ij}\) 都是定值,我们只关心 \(B\) 的行和和列和。 阅读全文
posted @ 2020-12-21 22:21 crashed 阅读(88) 评论(0) 推荐(0)
摘要:题目 比赛界面。 T1 比较简单。容易想到是求鱼竿的最大独立集。由于题目的鱼竿可以被分割为二分图,就可以想到最大匹配。 尝试建边之后会发现边的数量不小,但联系题目性质会发现对于一条鱼竿,它会影响的垂直方向上的鱼竿一定是一个区间,因此再套一发线段树优化即可。 这里不建议写倍增优化,因为倍增的点是$O( 阅读全文
posted @ 2020-06-11 21:51 crashed 阅读(350) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 做法比较容易看出来。我们对于每个城市,找出那些 " 如果这个城市在首都内,则必须在首都内的其它城市 " ,也就是为了让这个城市的小镇连通而必须选的城市。 接着,我们新建一个有向图,将一个城市看成一个点,一条边 \((u,v)\) 代表 " \(u\) 在首都则 \(v\) 阅读全文
posted @ 2020-04-02 22:07 crashed 阅读(497) 评论(0) 推荐(0)