摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3061思路:最小割的模型,具体的构图是:从源点连接正权的点,流量上限为该点的权值;从负权点连接汇点,流量上限为该点权值的绝对值;所有具有拓扑关系的点直接,从st连接end一条INF上限的边;求出最大流,最后用所有正权点的和减去最大流(最小割),便是答案。具体请参见07年的集训队论文《最小割模型在信息学竞赛中的应用》。View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 usi 阅读全文
posted @ 2013-05-10 21:53 ihge2k 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目链接:网上一大牛说的好:结论:正的权值的和-建图后的最小割的容量选择了一条边就会选择两个点,边的花费为正,点的花费为负,把边看成点,这个点向两个端点连一条边,表示选择这条边就会选择这两个点然后题目就相当于最大权闭合图的模型了(最大权闭包模型中vs与正收益的点连边,负收益的点与vt连边,容量取绝对值,然后点与点之间连容量为inf的边)题意:有n个点,m个选择,建造n个点各自需要一定花费,每个选择有一定的获利,会选择两个点,当然也要花费。求最大的获利每个选择看成是获利点,每个点看成是花费点,新建源点向获利点建边,权值为获利的大小,花费点向汇点建边,权值为花费的大小每个选择向相应的两个点连一条容 阅读全文
posted @ 2013-05-10 21:21 ihge2k 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3917思路:就是一个最大权闭包的模型,解法为求最小割,构图方法以公司为点,如果公司之间有关系,则连一条容量为无穷的有向边,对每个公司,如果该公司收益为正,则从vs到该公司连一条容量为收益的有向边,如果为负,向vt连一条容量为该公司收益绝对值的边,为0时选和不选不影响结果,可以舍去。其消费为所有收益和-所选割中正收益-所有割中负收益(减去负的即为加上绝对值),然后求出最小割,最后相减即可。(胡伯涛的论文《最小割模型在信息学竞赛中的应用》里面有这个模型)View Code 1 #include<i 阅读全文
posted @ 2013-05-10 20:38 ihge2k 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 几道搜索水题,搜索要点就是不断剪枝,必要时还要不断恢复路径。慢慢体会递归的强大!!!题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1342View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define MAXN 55 6 int num[MAXN]; 7 int path[MAXN]; 8 int k,len; 9 10 void dfs(int x,int cnt){1 阅读全文
posted @ 2013-05-10 17:01 ihge2k 阅读(519) 评论(0) 推荐(0) 编辑