上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页
摘要: 题意:一个公司有两个音乐厅,求能一年中能获得的最大的收益.分析:最小费用最大流,将费用改成负数求即可// File Name: 1317.cpp// Author: Zlbing// Created Time: 2013/4/25 21:32:14#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<set>#include<map>#include<vector> 阅读全文
posted @ 2013-04-25 23:22 z.arbitrary 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题解来源:https://webcache.googleusercontent.com/search?q=cache:tXXwdVkVWOEJ:acmrush.appspot.com/2012/01/4/hangzhou2005D.html+&cd=2&hl=zh-CN&ct=clnk&gl=cn题目大意:两个公司进行投标,竞争一些channels,每个投标可以包含多个channels,且都有一定的收益,每一个channels只能为其中的一个公司利用,同时保证一个公司给出的投标中选中的channels不会冲突,求出两公司收益总和的最大值。最多有300000个ch 阅读全文
posted @ 2013-04-25 11:10 z.arbitrary 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个点,每个点有ni个企鹅,这个点最多能跳着离开mi次.企鹅每次最多能跳D单位远,每两点之间有坐标距离..要你求出哪些点可以聚集所有的企鹅分析:因为每个点最多离开mi次,说明这个点有结点容量(允许通过的最大容量),故拆点i*2,i*2+1;详细见代码// File Name: 12125.cpp// Author: Zlbing// Created Time: 2013/4/23 20:42:02#include#include#include#include#include#include#include#include#include#include#include#include 阅读全文
posted @ 2013-04-23 23:58 z.arbitrary 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 题意:N个队伍在M张桌子上吃饭,问你,是否存在一种方案,使得队伍中每个人都在不同的桌子上吃饭,若不能输出0,若能,输出1并输出解决方案分析:最大流问题,只是这个需要输出解决方案.先建图,每个队伍Ai与每个桌子Bi建一条边,权值为1,因为每个队伍只能派一个人在这张桌子上吃饭.同时建立超级源点S和超级汇点T,S向每个队伍建一条边,权值为队伍人数.每张桌子向T建一条边,权值为桌子容量!求最大流ans,若ans等于所有人数,则有解决方案,否则无解决方案;对与解决方案,对与每条边,起始点要求是队伍标号,终点是桌子标号,且流量flow要与容量cap相等,说明这条边被选择了!// File Name: 10 阅读全文
posted @ 2013-04-22 17:05 z.arbitrary 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 题意:有n(n ≤ 1000)个人和m(m≤500)个组。一个人可能属于很多组。现在请你从某些组中去掉几个人,使得每个人只属于一个组,并使得人数最多的组中人员数目最小。分析:看到最多的最小,就可以猜到是一个二分答案ans的题,最大流是没想到...囧.这题用最大流做,若Ai属于Bi,则连一条Ai到Bi的边,边值为1,然后连超级源点S到Ai的边,边值为1,表示仅有一个Ai,然后对于超级源点T,连Bi到T的边,边值为ans,表示Bi组织最多有ans个人,求最大流,若最大流答案等于n,则表示在每组人限制ans个的情况下能够分配组员到各组,若不等于,则说明在每组人限制ans个的情况下,不能分配组员到各组 阅读全文
posted @ 2013-04-22 15:01 z.arbitrary 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个景点,每个景点之间有一些带权有向边,要求你设计一些线路,要求线路是一个圈,并且每个景点只能有一条线路经过,并且只能经过一次(起始点除外),问你,若存在,求这些线路权值的最小和,否则输出"N"分析:这题和上一题HDU差不多,只是这题有可能不存在解决方案.同样这题也有重边若不存在解决方案,则对于有些点,不存在Left[i]和i的边,故w[Left[i]][i]=-INF;http://www.cnblogs.com/arbitrary/archive/2013/04/21/3034424.html// File Name: 1349.cpp// Author: Zl 阅读全文
posted @ 2013-04-21 21:37 z.arbitrary 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个城市,M条街道,每条街道是单向的,现在要你设计多条路线覆盖所有的点,每条路线都是一个环,并且每个点仅能被一条路线覆盖且只经过一次(终始点除外)分析:因为是有向圈,所以每个点的入度和出度应该都是1,故将一个点拆成两个点,入度点和出度点,然后用最佳匹配即可!(因为最佳匹配是求最大值,故我们把边权设为负值即可!)注意:这题有重边,题目太不道德了,有重边都不说,还要猜的啊!有些题没说有重边就没重边,有些题没说有重边但是它就是有重边!无敌了都!// File Name: 3488.cpp// Author: Zlbing// Created Time: 2013/4/21 20:14:19# 阅读全文
posted @ 2013-04-21 20:44 z.arbitrary 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 题意:有c只猫,d只狗比赛,V个投票人,每个人可以投喜欢和讨厌两票,如果有讨厌的猫或狗在台上,则投票人拒绝去看比赛,如何安排猫和狗使观看的人最多,求观众的最多人数.分析:因为观众不是喜欢猫就是喜欢狗,故可以将喜欢猫的观众放一起,喜欢狗的观众放一起,因此形成二分图,把不能同时存在的两个观众连一条边,故求出的最大独立集就是答案.// File Name: 12168.cpp// Author: Zlbing// Created Time: 2013/4/21 17:00:35#include<iostream>#include<string>#include<algo 阅读全文
posted @ 2013-04-21 19:25 z.arbitrary 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个n*n的棋盘上有n个棋子,要求通过移动棋子使棋子的排布满足以下情况之一:呈横行排列;呈纵行排列;呈对角线排列(有两条)。棋子移动一个单元格的费用为1,总费用为所有棋子的移动费用之和。求最小费用。分析:因为这题的数据很小,故可以枚举每种情况.对于每种情况,我们可以用二分匹配的方法算出最小费用(对于每个棋子,连接n条边到n个目标位置,权值设为负,这样最佳二分匹配求的最大值就是答案的最小值了);// File Name: 1045.cpp// Author: Zlbing// Created Time: 2013/4/20 15:58:22#include<iostream> 阅读全文
posted @ 2013-04-21 13:48 z.arbitrary 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 题意:求生成树,并且生成树的最大边减最小边的值最小.分析:根据最小瓶颈生成树可知,使用kruscal算法枚举最小边即可// File Name: 1395.cpp// Author: Zlbing// Created Time: 2013/4/20 13:00:15#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<set>#include<map>#include<v 阅读全文
posted @ 2013-04-20 13:37 z.arbitrary 阅读(452) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页