实践题目 工作分配问题 问题描述 有n个人、n个工作,每个人只能做一个工作,每人对应每个工作有一个消费,求完成所有工作的最小消费 算法描述 这里采用回溯法,按顺序给每个人分配工作,如果一件工作已经被分配,打上标记防止被重复分配 分配过程中,如果当前的消费已经大于等于已知的最小消费,就停止对子节点的搜 ...
分类:
编程语言 时间:
2018-12-23 20:01:19
阅读次数:
194
神奇的中位数定理!(名字自己起的) 两个题目都是一个问题:$n$个人围成一圈,每个人可以给她左右两个人金币,求最小的金币交换量使得他们的金币都一样多。 鉴于不会那些费用流,就学了神奇的数学方法。(其实蓝书里面有类似的题目) 所谓的数学方法是这样的: 设$A_i$为第$i$个人一开始持有的金币数,$X ...
分类:
其他好文 时间:
2018-12-22 22:02:58
阅读次数:
246
给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。 求: 1、在不扩容的情况下,1到N的最大流; 2、将1到N的最大流增加K所需的最小扩容费用。 其中$n \le 1000,m \le 5000,k \le 10$ 网络流题,复杂度都是没用的了.... 第 ...
分类:
其他好文 时间:
2018-12-22 14:56:13
阅读次数:
171
题目大意: 给定一个n个点m条边的无向图 求从点1去点n再从点n回点1的不重叠(同一条边不能走两次)的最短路 挑战P239 求去和回的两条最短路很难保证不重叠 直接当做是由1去n的两条不重叠的最短路 这样就变成了由1去n流量为2的最小费用流 #include <bits/stdc++.h> #def ...
分类:
其他好文 时间:
2018-12-21 13:14:09
阅读次数:
174
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2597 三个人之间的关系,除了“剪刀石头布”,就是有一个人赢了2局;所以考虑算补集,则每个人对答案的贡献是 \( -C_{f[ i ]}^{2} = \frac{f[ i ]*(f[ i ]-1 ...
分类:
其他好文 时间:
2018-12-14 12:55:41
阅读次数:
160
因为直接利用费用流可能会导致经过相同的点,所以利用拆点法 除了首尾结点之外其他的每一个结点都拆成两个结点,并且两个结点之间连一条容量为1,费用为0的边,这样做的理由也很简单 一旦一个节点用过之后,下次再经过这个节点之后再也没有办法扩展到其他节点了 ...
分类:
其他好文 时间:
2018-12-02 12:11:06
阅读次数:
202
建图((x,y,c,l)表示x到y,费用c,流量l) (S,1,0,K) (i,i+1,0,K) 这个边上的流量,表示i还可以被覆盖的次数 (N,T,0,K) (i,j,w,1)对于权值为w的区间[i,j] 然后跑最大费用最大流 因为没有负权值,所以肯定尽量跑满 ...
分类:
其他好文 时间:
2018-12-01 21:55:11
阅读次数:
169
看到数据范围,考虑网络流..但考的时候完全不知道怎么建图 考虑流量表示选的点个数,费用表示选点的收益,跑最大费用最大流 那么我用一个点x表示某树中的询问点x,刨去它子孙询问点的子树后的子树 对于树1,连边S->x,流量为x的限定数-孩子询问的限定数,费用为0 对于树2,连边x->T,流量为x的限定数 ...
分类:
其他好文 时间:
2018-12-01 21:49:30
阅读次数:
215
题意:NxM的格子有些上面有数字,现在要把奇数跟偶数配对连起来,其他的格子连成一个个回路, 单独的相邻两个格子相连也算是一个回路按两条边算,连线不能相交, 给出相邻两个格子相连的费用,求最小的总费用,无解输出-1 n,m<=50 保证答案在int范围之内 思路:费用流神仙建模 From https: ...
分类:
其他好文 时间:
2018-11-28 23:42:15
阅读次数:
275
餐巾计划问题 不错的建模题。 满足餐巾需求之下,花费最小。可以想到费用流。 但是怎么建模呢? 可以想到,因为N<=2000,而且一切的工作,洗刷,购买都和天有关系。 所以,肯定要把网络流中的点看做每一天。 比较麻烦的是,我们不好处理餐巾的干净和脏的状态, 如果每天只有“一个点”的话,我们也不能处理一 ...
分类:
其他好文 时间:
2018-11-28 12:20:37
阅读次数:
265