2013年8月25日

POJ2942-Knights of the Round Table

摘要: 转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6756821大致题意:亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突,并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求:1、 相互憎恨的两个骑士不能坐在直接相邻的2个位置;2、 出席会议的骑士数必须是奇数,这是为了让投票表决议题时都能有结果。如果出现有某些骑士无法出席所有会议(例如这个骑士憎恨所有的其他骑士),则亚瑟王为了世界和平会强制把他剔除出骑士团。 现在给定准备去开会的骑士数n,再给出m对憎恨对(表示某2个骑士之间使互相憎 阅读全文

posted @ 2013-08-25 00:10 爱∪ 阅读(181) 评论(0) 推荐(0) 编辑

2013年8月21日

POJ1966 ZOJ2182<无向图点连通度 Isap版>

摘要: 求顶点连通度的方法 : (1)把原图中每个结点拆成2个结点v1,v2,顶点v1到v2有一条弧,容量为1(2)对于原图中每条边e(u,v);在网络中有两条弧e1= ,e2=容量都为inf (3)固定源点A2,枚举每个汇点(原图中不与A点相邻的),记录最小独立轨数目,该值就是顶点连通度刚刚看到这位大神的博客,才知道固定一个源点的做法是错误的。。地址:http://www.cnblogs.com/wuyiqi/archive/2011/10/09/2203516.html固定一个源点的做法是错误的,因为如果刚好枚举的源点是割顶集里面的点就不行了如如下数据5 6 (0,1) (0,2) (1,2) ( 阅读全文

posted @ 2013-08-21 15:31 爱∪ 阅读(283) 评论(0) 推荐(0) 编辑

2013年8月19日

POJ1523(求割点)

摘要: 割点:删掉它之后(删掉所有跟它相连的边),图必然会分裂成两个或两个以上的子图。一个顶点u是割点,当且仅当满足(1)或(2)(1) u为树根,且u至少有两个子女 (2) u不为树根,且满足存在(u,v)为树枝边(或称父子边,即u为v在搜索树中的父亲),使得low[v]>=dfn[u]dfn[i]表示DFS 过程中到达点i 的时间,low[i]表示能通过其他边回到其祖先的最早时间邻接表版本 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 1005 8 #de.. 阅读全文

posted @ 2013-08-19 13:54 爱∪ 阅读(150) 评论(0) 推荐(0) 编辑

2013年8月18日

POJ2391(最大流Isap+Floyd+二分)

摘要: 题意:给出一些牛棚,开始牛棚边有一些牛,牛棚之间有路相连,走一条路会花费固定的时间。牛在牛棚边吃草,下雨时牛得躲进牛棚,每个牛棚容量有限。求在所有牛都能进牛棚时最少需要多少时间。这题和POJ2112相似,不过这题要拆点,把每个点拆成两个点,如果直接连原图中的点,是不对的。网上找了大神的图当二分到T = 70的时候,显然我们只加入了(2, 3)和(3, 4)两条无向边,因为只有这两对点间的最短距离小于等于70。但是从图中也可以看出,由于没有拆点,点2也可以通过这两条边到达点4,而实际上这是不允许的。也就是说我们所加的限制条件没有起到作用。由此可见,只有拆点才是正确的做法。然后这题还要注意64位。 阅读全文

posted @ 2013-08-18 13:30 爱∪ 阅读(213) 评论(0) 推荐(0) 编辑

POJ1087 ZOJ1157(最大流Isap+map映射)

摘要: 题意:在一个会议室里有n种插座,每种插座一个;每个插座只能插一种以及一个电器(或者适配器); 有m个电器,每个电器有一个插头需要插在相应一种插座上;不是所有电器都能在会议室找到相应插座; 有k种适配器,每种适配器可以有无限多数量;每种适配器(a, b)可以把b类插座变为a类插座; 问最后有多少个电器无法使用。建图:(1) 源点到每种插座连一条权值为1的边(2) 每个电器到汇点连一条权值为1的边(3) m个电器中,连一条对应插座到该个电器的边,权值为1(4)k种适配器,连一条B到A的边,权值为inf题目意思最多也就300个点,怎么开n=300,就re了,开600多,就AC了,求过路大神指点 1. 阅读全文

posted @ 2013-08-18 00:55 爱∪ 阅读(253) 评论(0) 推荐(0) 编辑

2013年8月17日

POJ1459(最大流Isap)

摘要: 题意:有一个电力网络,有发电厂,有用户,图提供的信息有发电厂和用户的容量,还有边,以及边的容量和流量,求解用户的最大使用量.先输入四个数 n np nc m,n表示的是总共的顶点数目,np表示发电厂的数目,nc表示用户的数目,m表示边数.再输入m条边的信息,再输入np个发电厂的信息,再输入nc个用户的信息(1)对输入的m条边建边(2)对源点到每个发电站建边(3)对每个用户到汇点建边 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 0x7... 阅读全文

posted @ 2013-08-17 23:01 爱∪ 阅读(164) 评论(0) 推荐(0) 编辑

数字的字符串处理 (转)

摘要: 转自:http://blog.csdn.net/dgq8211/article/details/7580971在一些情况下,我们可能需要把一个字符串中的数字提取出来,这时候如果自己写函数就太麻烦了,c语言标准库中有一些弄好的函数供我们使用。现在我们来一起学习一下吧。1、atoi(char* buf),atof(char* buf)。这两个函数一看名字就猜到了,前者是转换成int,后者是转换成double。我们以atoi为例讲下它的用法。头文件:参数:如上所示。函数功能:从这个地址开始直到遇到不是数字的字符终止,截取这一串数字。返回值:将这一串数字变为int型,然后返回结果。int main() 阅读全文

posted @ 2013-08-17 22:41 爱∪ 阅读(229) 评论(0) 推荐(0) 编辑

POJ2112 最大流(Isap+Floyd+二分)

摘要: 题意:有K个挤奶器,C头奶牛,每个挤奶器最多能给M头奶牛挤奶。求使C头奶牛头奶牛需要走的路程的最大路程最小。(1)首先跑一遍Floyd,求出任意两个点的最短距离(2)然后进行二分,对奶牛和挤奶器距离 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 0x7fffffff 8 #define N 300 9 #define M 40000 10 int dis[N],gap[N],cur[N],pre[N]; 11 int size,head[N]; 12 in... 阅读全文

posted @ 2013-08-17 17:25 爱∪ 阅读(215) 评论(0) 推荐(0) 编辑

POJ1273(最大流Isap)

摘要: 题意:现在有m个池塘(从1到m开始编号,1为源点,m为汇点),及n条水渠,给出这n条水渠所连接的池塘和所能流过的水量,求水渠中所能流过的水的最大容量.求1到n的最大流,套模板。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 0x7fffffff 8 #define N 205 9 #define M 40510 int cur[N],pre[N],gap[N],dis[N];11 int size,head[N];12 struct Edge13... 阅读全文

posted @ 2013-08-17 12:45 爱∪ 阅读(158) 评论(0) 推荐(0) 编辑

2013年8月16日

POJ1149 最大流(Isap)

摘要: 题意: 有 M 个猪圈,每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。依次来了 N 个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪。每个顾客分别都有他能够买的数量的上限。每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。构图:(1) 将顾客看作源点和汇点以外的结点,并设一个源点和汇点(2)源点和每个猪圈的第一个顾客连边,边权是开始时猪圈中猪的数目(3)顾客j在顾客i之后打开猪圈,i,j 之间连一条权值为inf的边,因为迈克可以根据j的需要,从其他猪圈调猪过来,让j得到尽可能多的猪(4)每个顾客和汇点连一条权值为顾客要买猪的数目 阅读全文

posted @ 2013-08-16 22:25 爱∪ 阅读(228) 评论(0) 推荐(0) 编辑

导航