摘要: 裸地2-sat。看到a、b只能选择0,1就应该想到是2-sat问题。建图方法:2-sat箴言:如果a与b矛盾,则添加单向边(a,b').这道题目中,矛盾指的是a[i]+b[i]=c[i].故可应该按如下方法建图。假设,a代表0,a'代表1.1、c=0时,a=0时,b=0时产生矛盾,故连边(a,b'),(b,a'); a=1时不会有矛盾。2、c=1时,a=0时,b=1时产生矛盾,故连边(a,b),(... 阅读全文
posted @ 2010-11-24 00:30 晓天 阅读(1108) 评论(0) 推荐(0)
摘要: 赤裸裸的最小费用流代码 阅读全文
posted @ 2010-10-30 12:25 晓天 阅读(214) 评论(0) 推荐(0)
摘要: * File: PKU 2112 Optimal Milking* Author: xiaotian @ hnu* Created on 2010年10月16日, 上午9:26* 题解:最大流+二分验证* 建图方法:首先从源点到所有 milk machine 连一条边,容量为 M ,* 再从所有的 cow 连一条边到汇点,容量为 1 。* 二分一个距离 dis,如果某一个 milk machine... 阅读全文
posted @ 2010-10-16 10:22 晓天 阅读(165) 评论(0) 推荐(0)
摘要: 二分匹配飘过好久没有写过二分匹配的题目了,今天写了一个,有点手生,好长时间才建出图来。建图方法:横竖分区。先看每一列,同一列相连的空地同时看成一个点,显然这样的区域不能够同时放两个点。这些点作为二分图的X部。同理在对所有的行用相同的方法缩点,作为Y部。连边的条件是两个区域有相交部分。最后求最大匹配就是答案。比如样例一:得到两种编号为以列缩点:[代码]以行缩点:[代码]好了,其余不解释。代码 阅读全文
posted @ 2010-10-14 21:09 晓天 阅读(386) 评论(0) 推荐(0)
摘要: * File: PKU 2372 Get Luffy Out* Author: xiaotian @ hnu* Created on 2010年10月11日, 上午9:52* 题解:二分 + 2-sat验证* 建图:对于每一对钥匙(X,Y),如果使用X就不能使用Y,故添加边(X,Y'),(Y,X').* 对于每一扇名门,只需打开其中一把锁即可,故添加边(X',Y),(Y',X).Code for ... 阅读全文
posted @ 2010-10-11 15:58 晓天 阅读(175) 评论(0) 推荐(0)
摘要: 晚宴桌子分配,同一个队伍的人不能坐在同一个桌子旁边。求存不存在这样的分配方案,存在则输出方案。典型的最大流。建图方法:从源点连一条边到所有的队伍,流量为队伍成员数量;从所有桌子连一条边到汇点,流量为桌子容量;从每个队伍连一条边到每一个桌子,流量为1,表示这个队伍到这个桌子只能去一个人。求最大流,若最大流量等于所有人数,则表示可行,否则不可行。输出方案可以从剩余网络中得到。若某一个队伍到某一个桌子的... 阅读全文
posted @ 2010-10-09 11:59 晓天 阅读(382) 评论(0) 推荐(1)
摘要: * File: Timus 1069. The Prufer code* Author: xiaotian @ hnu* Created on 2010年10月9日, 上午9:35* 题解:思维题目。给定一棵树的编码方式,让还原这棵树。* 编码方式:每次取编号最小的叶节点和与其相连的边删掉,写下这个叶节点的父亲节点。重复以上操作,直到只有一个节点的时候,这个节点编号必然是 n 。* 还原方式:可以... 阅读全文
posted @ 2010-10-09 10:28 晓天 阅读(243) 评论(0) 推荐(0)
摘要: code for UVA 10158 阅读全文
posted @ 2010-10-09 09:34 晓天 阅读(292) 评论(0) 推荐(0)
摘要: 优先队列广搜求最短路Code for HNU 11072 阅读全文
posted @ 2010-10-08 19:29 晓天 阅读(272) 评论(0) 推荐(1)