上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要: http://poj.org/problem?id=2762就是判断一个图是不是 弱连通tarjan , 缩点之后,如果缩点图的 入度为一的点有一个 并且 出度为一的点 有一个 则是弱连通开始把有向边都改成无向边 用dfs遍历 只要图连一块就是弱连通图 ,结果证明是错滴下图(图一)这个图就不连通,但是如果依照刚才的dfs把有向边变成无向边就错了还有一个地方(图二)#include<iostream>#include<cstdio>#include<cstring>#define nMAX 10010#define mMAX 50010using namesp 阅读全文
posted @ 2012-02-10 05:38 快乐. 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 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) 编辑
摘要: 题意很容易理解,读完题还是没想到用匈牙利算法,很神奇,怎么就跟最大匹配扯一块了呢原来是最小覆盖问题 怎么看出的是最小覆盖 神奇之一http://ip96cns.blog.163.com/blog/static/170095192201102452319234/这几句话比较喜欢这种把坐标上的点转化成图的线的方法,一种从坐标系到图的转化思想,值得记下来。而其中的隐含关系是,坐标系的一行,一列,对应二分图上的两个点集,如此云云,博主已近乎疯狂。。。。。”还有什么konning定理,最小覆盖=最大匹配数 神奇之二代码就是一般的求最大匹配了 不神奇贴之:#include<iostream># 阅读全文
posted @ 2012-02-03 02:31 快乐. 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题意很容易理解,就是拓扑排序 实现起来不容易,起码我觉得是这样首先 用拓扑排序检查是否有环 如果没环路 再用floyd传递闭包 (传递闭包 好专业的术语喔),再判断序列是否唯一学了一下拓扑排序,不难,就是先算出每个点的入度 ,找出入度为0 ,比如 i 作为第一个,然后比如map[i][j]==1 i,j 之间存在 i->j的边则从cnt[j]--,即 j 的入度减一 然后再找入度为0的点。。。floyd传递闭包 判断序列是否唯一的方法!代码:#include<iostream>#include<cstdio>#include<string>#inclu 阅读全文
posted @ 2012-02-03 02:19 快乐. 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 关键是构图,题意:有n个插座,m中电器,还有转换器(将一种插座转成另一种)。。。题目很纠结 在此忽略构图,添源点0 汇点1,插座从2开始标记(把字符串型的插座 用 int 存储),给出的n个插座都与汇点连线,权值1;可以直接插电器的插座与源点连线,权值1;相互转换的插座间连线,权值inf 相当很大;第一次构图,看的别人的报告,这个图确实构造的很神奇,把四组点弄成三组点构图,膜拜ly大神代码:#include<iostream>#include<cstring>#include<string>#include<cstdio>#include< 阅读全文
posted @ 2012-02-02 02:43 快乐. 阅读(129) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3463题意:求最短路和比最短路大一个单位的总数看的这个解题报告http://blog.csdn.net/leeeyupeng/article/details/5790928二维存储cnt[MAX][2],visit[MAX][2],dis[MAX][2]; dist[i][0]源点到i点的最短路径,dist[i][1]远点到i的次短路径,visit标记访问情况,cnt[i][0],cnt[i][1]到i点最短路径,次短路径的数量,还有就是经典的更新路径数量的方法if val<dis[i][0]else if val==dis[i][0 阅读全文
posted @ 2012-02-02 02:32 快乐. 阅读(217) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页