poj Firing(最大重量封闭图)】的更多相关文章

Firing 题目: 要解雇一些人,而解雇的这些人假设人跟他有上下级的关系,则跟他有关系的人也要一起解雇.每一个人都会创造一定的价值,要求你求出在最大的获利下.解雇的人最小. 算法分析: 在这之前要知道一个定理: 最小割 = 最大流 一道最大权闭合图的裸题,而这又能够转换成最小割来求解.证明能够看2007年胡伯涛的论文则能够直接套出模板.没看过的最好去看一下.那里解释的清楚. 这里我给出他的原文的一些构造方法. 添加源s汇t 源s连接原图的正权点,容量为对应点权 原图的负权点连接汇t.容量为对应…
### POJ 1724 题目链接 ### 题目大意: 给你 N 个点 ,M 条有向路,走每条路需要花费 C 元,这段路的长度为 L . 给你 K 元,问你能否从 1 走到 N 点且花费不超过 K 元.如果可以,输出出最短距离,否则输出 -1 . 显然分层图最短路,这里 dist[i][j] 表示从 1 到 i 点 且 所剩钱数为 j 时的最短路,然后跑一遍 dijkstra 即可. PS:在优先队列先到达 N 点的即为答案,可以直接返回,不需要等队列走完再 O(N)找最小值,时间会很快(这里还…
题意 : 给出 n 个单词组成的字符集 以及 p 个非法串,问你用字符集里面的单词构造长度为 m 的单词的方案数有多少种? 分析 :先构造出 Trie 图方便进行状态转移,这与在 POJ 2278 中的步骤是一样的,只不过最后的DP状态转移方式 2778 是利用了矩阵进行转移的,那是因为需要构造的串的长度非常长!只能利用矩阵转移.但是这道题需要构造的串的长度最多也就只有 50 ,可以利用普通的DP方法进行转移.我们定义 DP[i][j] 为以长度为 i 以字符 j 为结尾的串的种类数是多少,那么…
其实2-SAT类型题目的类型比较明确,基本模型差不多是对于n组对称的点,通过给出的限制条件建图连边,然后通过缩点和判断冲突来解决问题.要注意的是在topsort输出结果的时候,缩点后建图需要反向连边,然后输出就可以了.2-sat题型差不多. 题意:新娘新郎分别坐在长桌两边,n-1队夫妇来参加婚礼,要求:夫妇不能坐在同一边,通奸关系不能坐在同一边.输出新娘对面的序列. 思路:对称关系:夫妇,限制条件:通奸关系.基础2-sat问题,缩点找冲突topsort输出结果一气呵成... 代码: #inclu…
发现建图的方法各有不同,前面一题连边和这一题连边建图的点就不同,感觉这题的建图方案更好. 题意:给出每个婚礼的2个主持时间,每个婚礼的可能能会冲突,输出方案. 思路:n个婚礼,2*n个点,每组点是对称的,用O(n2)的方法判断每个点之间的关系来建图,然后通过拓扑排序输出即可. 代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define MAXN 2002 i…
题意: 给定一幅图, 问符不符合一下两个条件: (1) 图中没有环 (2)图中存在一条链, 点要么在链上, 要么是链上点的邻居. 分析: 建图,记录度数, 去掉所有度为1的点, 然后看看剩下是否是有2个度为1的点和其他都是度为2的点. #include<cstdio> #include<iostream> #include<queue> #include<cstring> #include<string> #include<map>…
题意: 你m个猪圈以及每个猪圈里原来有多少头猪,先后给你n个人,每个人能打开某一些猪圈并且他们最多想买Ki头猪,在每一个人买完后能将打开的猪圈中的猪顺意分配在这次打开猪圈里,在下一个人来之前 已打开的猪圈会被锁上.问最多能卖几头猪 分析: 这个题明着想呢,肯定是要建N排点的,表示相同的猪圈的点连inf边,跑最大流的. 建那么多点肯定是会炸的. 在网络流中呢,如果我们做题的初步思路是最大流,那么肯定要将题目中问的直接问题抽象成水流,比如这道题,问最多的卖猪数,我们当然就要把猪的数量作为“流”,这是…
题意: 已知每一个点的加油站的油价单位价格(即点权).每条路的长度(边权). 有q个询问.每一个询问包含起点s.终点e和油箱容量. 问从起点走到终点的最小花费.假设不可达输出impossible,否则输出最小的旅途费用. 算法: 事实上要分析状态= =感觉就像是dp. 最直接的想法是  每到一个点都加上要走到下一个点所须要的油量.可是走的路不同,究竟怎么处理加多少的问题呢? 因此想到分解状态.即拆点.每到一个点都+1单位的油量,然后把这个状态增加队列.另外假设如今油箱内的油足够达到下一点, 则更…
In modern society, each person has his own friends. Since all the people are very busy, they communicate with each other only by phone. You can assume that people A can keep in touch with people B, only if 1. A knows B’s phone number, or 2. A knows p…
/*最大重量封闭图: 意甲冠军:一些城市要建路需要负责一些公司,每家公司都需要缴纳个税.该公司将需要花费每路,另一个限制条件,如果那家公司a既定a-b.公司b既定b-c然后选择 公司a 你必须选择一个公司b. 今天,最大的收入要求. 解:设置一个源点和汇点,将选每一个公司的收益和算出来,假设为正值和源点相连.假设为负值和和汇点相连权值为其绝对值.中间的公司之间有关系的权值置为inf, 最大权闭合图=全部正收益的和-最小割. */ #include<stdio.h> #include<st…