摘要: http://poj.org/problem?id=3436觉得构图 输入 比较纠结题意:电脑由P部分组成,由N台机器组装,每台机器单位时间有最大组装数,2~N+1行 每行第一个数是 对应机器的最大组装数,接下来P个数是 该机器组装前需要的P个部分(0表示不需要,1表示不可缺少,2表示有和没有均可) 后P个数表示该机器加工完后,会得到哪些部分(0表示不会到的,1表示一定会得到)增加源点和汇点 纠结在各个机器之间的连接。 首先,输入部件没有1的(为0或2!!!)的与源点相连,权值为该机器的组装数, 输出部件全为一的与汇点相连,权值为该机器的组装数; 如果一个机器的输出满足另一个机器的输入,连接这 阅读全文
posted @ 2012-02-09 02:38 快乐. 阅读(193) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1459增加一个一个源点和一个汇点 然后连接。。。。代码:#include<iostream>#include<string>#include<cstdlib>#include<queue>#include<cstring>#include<cstdio>#define inf 10000000#define Min(a,b)a<b?a:busing namespace std;int map[104][104],level[104];int s,t,n,np,nc 阅读全文
posted @ 2012-02-09 02:21 快乐. 阅读(178) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2965跟 poj1753 一个类型的题意:还是四行四列的格子 里面有+和- ,变换一个符号的同时,它所在的行和列也要变,求最少的步数问题是记录路径 无语开始用的queueu队列,记录路径 TLE 后来改成数组 记录前一个点 运行时间还是长。。。代码:#include<iostream>#include<cstdio>#include<cmath>#include<string>#include<cstring>#include<queue>#define MAX 660 阅读全文
posted @ 2012-02-09 02:12 快乐. 阅读(181) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1753题意:四行四列的格子里放 黑色和白色的双面 卡片,然后反转卡片(黑->白or 白->黑),同时这张卡片的四周(上 下 左 右)也要反转),到全为 白色或黑色为止,问最少要几步,如果达不到目的输出“Impossible"状态压缩+枚举 ,bfs 最少步数 bfs求黑色和白色分别用0 1 表示 涉及到位运算 抑或枚举的是状态0~(1<<16-1)代码:#include<iostream>#include<cstdio>#include<cmath>#include< 阅读全文
posted @ 2012-02-09 02:06 快乐. 阅读(182) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3020上一个题是最小覆盖,这个是最小路径覆盖,通过这两个题学了一下最小覆盖和最小路径覆盖的概念,了解基本的构图方法最小路径覆盖=n-最大匹配 详细证明:http://hi.baidu.com/cjhh314/blog/item/ded8d31f15d7510c304e1591.html感觉很好,再粘一下最小路径覆盖2008-10-03 15:37在一个PXP的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每 阅读全文
posted @ 2012-02-09 01:56 快乐. 阅读(201) 评论(0) 推荐(0) 编辑