摘要: 模型描述 一张无向图$G = (V, E)$,没有点权也没有边权。 选取一个子图,使得$\frac{|E'|}{|V'|}$最大。 注意:这里的子图指的是,选取一些点,与之相关的边不一定全选。但是如果选取了某条边,那么其两个顶点必选。 但是因为全选与这些点相关的边,肯定是最优的,于是下文就默认是全选 阅读全文
posted @ 2021-02-16 23:05 pbc的成长之路 阅读(250) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N = 10010, M = 200010, i 阅读全文
posted @ 2021-02-16 22:36 pbc的成长之路 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 模型描述 一个有向图$G(V, E)$,每个点有点权$p_i$。 选取一个点集,要求与这个点集相关的边不能指向这个点集之外,称为一个闭合图。 所有闭合图中,点权和最大的称为最大权闭合图。 解法 原图中每条边的两个顶点$(u, v)$,$u$向$v$连容量是$\infty$的边。 设立虚拟源点$S$, 阅读全文
posted @ 2021-02-16 22:35 pbc的成长之路 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 首先分析一下边权是如何计算的,边权等于两点的异或值,由于异或是按位计算,不同位之间是独立,因此我们可以单独看一位,只要每一位的答案最小,然后将这些位的答案拼起来,就是最终的答案。 每一位的数值非$0$即$1$,因此可以划分成两个集合。对于已经知道点权的点,如果是$0$,就与源点$S$相连 阅读全文
posted @ 2021-02-16 17:55 pbc的成长之路 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 首先推一下01分数规划的式子,\(\frac{\sum_{e \in C} w_e}{|C|} > \lambda \Leftrightarrow \sum_{e \in C} w_e > \lambda |C| \Leftrightarrow \sum_{e \in C} (w_e - 阅读全文
posted @ 2021-02-16 17:09 pbc的成长之路 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 题意 $a_{ij}$以及$b_i$都是$0/1$ 方法 异或运算可以看成是不进位的加法,因此直接高斯消元即可 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 阅读全文
posted @ 2021-02-16 11:09 pbc的成长之路 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题意 给定$n \times (n + 1)$的线性方程组的增广矩阵,求方程的解。 做法 枚举每一列$c$: 找到当前列绝对值最大的那个元素。 把这一行换到最上面 将该行的主元(第一个数)变成$1$(其余所有数字依次跟着变化) 将下面所有行的当前列的值变成$0$(其余所有数字依次跟着变化) 代码 # 阅读全文
posted @ 2021-02-16 10:12 pbc的成长之路 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 这道题的建图是这样的,每个顾客作为流网络中的点。并设立虚拟源点$S$和虚拟汇点$T$。 对于一个顾客,考察每个他能开启的猪圈,如果该猪圈之前没用过,则源点$S$向他连容量是该猪圈起始猪数的边。如果该猪圈之前用过,则从上一次用这个猪圈的顾客向他连一条容量是$\infty$的边。 跑一遍最大 阅读全文
posted @ 2021-02-15 19:59 pbc的成长之路 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 将企鹅个数看作流量。 考虑转移方式,如果两块浮冰之间距离在企鹅跳跃距离以内,那么这两块浮冰之间就是可以互相转移的,因此可以互相连容量是$\infty$的边。 由于每块浮冰都有跳跃次数限制,因此考虑拆点,拆成入点和出点,入点向出点连容量大小等于跳跃次数限制的边。 设置虚拟源点$S$,连向每 阅读全文
posted @ 2021-02-15 17:26 pbc的成长之路 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题意 给定正整数序列 \(x_1, \dots , x_n\)。 计算其最长递增子序列的长度 \(s\)。 计算从给定的序列中最多可取出多少个长度为 \(s\) 的递增子序列。(给定序列中的每个元素最多只能被取出使用一次) 如果允许在取出的序列中多次使用 \(x_1\) 和 \(x_n\),则从给定 阅读全文
posted @ 2021-02-15 16:45 pbc的成长之路 阅读(51) 评论(0) 推荐(0) 编辑