摘要: 不会最小树形图的出门左转 其实如果确定每种商品第一件的购买顺序,那么剩下的商品肯定是以最优惠价格购买的。 如何确定各种商品第一件购买时的最小价值呢? 考虑如果购买了$a_i$这种商品,那么就能以$c_i$的价格购买$b_i$这种商品,考虑从$a_i$往$b_i$连权值为$c_i$的有向边。 初始建一 阅读全文
posted @ 2019-02-26 14:23 Xu-daxia 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 明显是一道斯坦纳树的题。 然而这题只需要属性相同的点互相连接。 我们还是照常先套路求出$ans[s]$。 然后对$ans[s]$做子集DP即可。 具体看代码。 cpp include include include include include include using namespace st 阅读全文
posted @ 2019-02-26 14:12 Xu-daxia 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 斯坦纳树的板子题。 斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种。 最小生成树是在给定的点集和边中寻求最短网络使所有点连通。 而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。 然而我解决问题并不需要你知道什么关于斯坦纳树的知识。 会状压(子集)DP和最短路就行了 阅读全文
posted @ 2019-02-26 14:03 Xu-daxia 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 斯坦纳树的板子题。 斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种。 最小生成树是在给定的点集和边中寻求最短网络使所有点连通。 而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。 然而我解决问题并不需要你知道什么关于斯坦纳树的知识。 会状压(子集)DP和最短路就行了 阅读全文
posted @ 2019-02-26 13:55 Xu-daxia 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 如果权值为$1$就是最长反链。 然而并不是。考虑用费用流。 把每一个盒子$i$拆成i和$i+n$。 设源点为$S$,汇点为$T$。 $S$向每一个i连容量为$1$,费用为$L[i] W[i]$的边 每一个$i$向$T$连容量为$1$,费用为$0$的边。 每一个$i$向$i+n$连容量为$1$,费用为 阅读全文
posted @ 2019-02-26 11:48 Xu-daxia 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 根据期望的线性性答案就是捕捉每一只精灵的概率之和。 捕捉一只精灵的方案如下: 1.使用一个$A$精灵球,贡献为$A[i]$ 2.使用一个$B$精灵球,贡献为$B[i]$ 3.使用一个$A$精灵球和一个$B$精灵球,贡献为$A[i]+B[i] A[i] B[i]$ 然后我们可以这样建图: 源点$S$向 阅读全文
posted @ 2019-02-26 11:30 Xu-daxia 阅读(221) 评论(0) 推荐(1) 编辑
摘要: 没学过最小割树的出门左转。 我们已经知道了两点的最小割就是最小割树上,对应两点之间路径的权值的最小值。 找到最小割树中权值的最小的边。 那么一定是先选完一侧的点在选完另一侧的点。 因为当前边最小,那么左右横跳的贡献最小(比在一侧内跳的贡献小)。 所以一直递归下去就行了。 cpp include in 阅读全文
posted @ 2019-02-26 11:16 Xu-daxia 阅读(340) 评论(0) 推荐(1) 编辑
摘要: 首先如果点权全都为正,就可以直接选所有的点。 活在梦里。。 考虑枚举一个点$i$,作为我们选择的集合中的一个点。 然后我们把另一个点$j$选入集合的时候必须把两棵树中$i$和$j$路径上的点全都选入集合。 似乎想到了什么。 闭合子图。 不就是一个最大权闭合子图吗。 然后我们按最大权闭合子图的模型建图 阅读全文
posted @ 2019-02-26 10:59 Xu-daxia 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 给出一种最小割的方法。 设$num1[i]$,$num2[i]$为第i种形状的点心的两种口味的数量 设$type[i]$,$type[i]$为第i种形状的点心的两种口味 假设$num1[i] include include include include include include using 阅读全文
posted @ 2019-02-26 10:43 Xu-daxia 阅读(239) 评论(1) 推荐(0) 编辑