摘要:
模型描述 一张无向图$G = (V, E)$,没有点权也没有边权。 选取一个子图,使得$\frac{|E'|}{|V'|}$最大。 注意:这里的子图指的是,选取一些点,与之相关的边不一定全选。但是如果选取了某条边,那么其两个顶点必选。 但是因为全选与这些点相关的边,肯定是最优的,于是下文就默认是全选 阅读全文
摘要:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N = 10010, M = 200010, i 阅读全文
摘要:
模型描述 一个有向图$G(V, E)$,每个点有点权$p_i$。 选取一个点集,要求与这个点集相关的边不能指向这个点集之外,称为一个闭合图。 所有闭合图中,点权和最大的称为最大权闭合图。 解法 原图中每条边的两个顶点$(u, v)$,$u$向$v$连容量是$\infty$的边。 设立虚拟源点$S$, 阅读全文
摘要:
题意 思路 首先分析一下边权是如何计算的,边权等于两点的异或值,由于异或是按位计算,不同位之间是独立,因此我们可以单独看一位,只要每一位的答案最小,然后将这些位的答案拼起来,就是最终的答案。 每一位的数值非$0$即$1$,因此可以划分成两个集合。对于已经知道点权的点,如果是$0$,就与源点$S$相连 阅读全文
摘要:
题意 思路 首先推一下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 - 阅读全文
摘要:
题意 $a_{ij}$以及$b_i$都是$0/1$ 方法 异或运算可以看成是不进位的加法,因此直接高斯消元即可 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 阅读全文
摘要:
题意 给定$n \times (n + 1)$的线性方程组的增广矩阵,求方程的解。 做法 枚举每一列$c$: 找到当前列绝对值最大的那个元素。 把这一行换到最上面 将该行的主元(第一个数)变成$1$(其余所有数字依次跟着变化) 将下面所有行的当前列的值变成$0$(其余所有数字依次跟着变化) 代码 # 阅读全文