随笔分类 -  图论

摘要:历届试题 危险系数 时间限制:1.0s 内存限制:256.0MB 问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站... 阅读全文
posted @ 2015-03-22 12:15 hjzqyx 阅读(682) 评论(0) 推荐(0) 编辑
摘要:题意:给定一个有向图,寻找一个点数最大集合,使得这个集合中的任意两个点 u,v, 都有u->v 或者 v->u 或者uv 思路:首先将强连通分量通过tarjan算法求出来,然后进行缩点,也就是每一个缩点 所组成的图就是一个DAG图!令每一个点的权值就是这个缩点所包含节点(也就是对应的 强连通分量的... 阅读全文
posted @ 2014-10-11 20:07 hjzqyx 阅读(204) 评论(0) 推荐(0) 编辑
摘要:题意:给定一个矩阵,表示每两个节点之间的权值距离,问是否可以对应生成一棵树, 使得这棵树中的任意两点之间的距离和矩阵中的对应两点的距离相等! 思路:我们将给定的矩阵看成是一个图,a 到 b会有多条路径, 如果存在一棵树,那么 这个树中a->b的距离一定是这个图中所有a->b中路径长度最短的一条!所... 阅读全文
posted @ 2014-09-29 23:24 hjzqyx 阅读(503) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:n个任务,有某些任务要在一些任务之前完成才能开始做! 3 第k个任务的约束只能是1...k-1个任务!问最终需要最少的时间完成全部的 4 任... 阅读全文
posted @ 2014-09-05 23:12 hjzqyx 阅读(395) 评论(0) 推荐(1) 编辑
摘要:1 /* 2 题意:求出多个全排列的lcs! 3 思路:因为是全排列,所以每一行的每一个数字都不会重复,所以如果有每一个全排列的数字 i 都在数字 j的前面,那么i, j建立一条有向边! 4 最后用bfs遍历整个图,求出源点到每一个点的距离,其中最大的距离就是最长的... 阅读全文
posted @ 2014-08-31 10:18 hjzqyx 阅读(563) 评论(1) 推荐(0) 编辑
摘要:LCA思想:在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历,这时候才把u结点放入合并集合中,这样u结点和所有u的子树中的结点的最近公共祖先就是u了,u和还未遍历的所有u的兄弟结点及子树中的最近公共祖先就是... 阅读全文
posted @ 2014-08-29 23:20 hjzqyx 阅读(726) 评论(0) 推荐(0) 编辑
摘要:LCA思想:http://www.cnblogs.com/hujunzheng/p/3945885.html在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历,这时候才把u结点放入合并集合中,这样u结点和所有... 阅读全文
posted @ 2014-08-29 23:14 hjzqyx 阅读(280) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:就是给你一个图,图的每两个点都有多条路径,每一条路径中都有一条最大边, 3 所有最大边的最小边(也就是瓶颈边)就是这两点之间的val值!然后给你一个值f, 4 问有多少个顶点对的val>=f! (u,v) 和 (v, u)是不同的顶点对! 5 6 思路... 阅读全文
posted @ 2014-08-28 22:19 hjzqyx 阅读(433) 评论(0) 推荐(0) 编辑
摘要:1 /************************************************************************* 2 > File Name: j.cpp 3 > Author: HJZ 4 > Mail: 2570230521@qq... 阅读全文
posted @ 2014-08-28 17:27 hjzqyx 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 /* 3 题意:就是寻找从源点到汇点的最大流! 4 要注意的是每两个点的流量可能有多个,也就是说有重边,所以要把两个点的所有的流量都加起来 5 就是这两个点之间的流量了! 6 7 思路:建图之后... 阅读全文
posted @ 2014-08-27 22:30 hjzqyx 阅读(277) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:给出一个无向图,去掉一条权值最小边,使这个无向图不再连同! 3 4 tm太坑了... 5 1,如果这个无向图开始就是一个非连通图,直接输出0 6 2,重边(两个节点存在多条边, 权值不一样) 7 3,如果找到了桥的最小权值为0,... 阅读全文
posted @ 2014-08-26 15:42 hjzqyx 阅读(511) 评论(0) 推荐(0) 编辑
摘要:1 /* 题意: 给你一个图,求这个有向图示否是一个强连通图(每两个节点都是可以相互到达的)! 思路1:按正向边dfs一遍,将经过的节点计数,如果记录的节点的个数小于n,那么就说明图按照正向边就不是连同的,所以就不是强连通图! ... 阅读全文
posted @ 2014-08-22 16:18 hjzqyx 阅读(2426) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意: 物主有一个物品,价值为P,地位为L, 以及一系列的替代品Ti和该替代品所对应的"优惠"Vi 3 g[u][i] 表示的是u物品被i物品替换后的优惠价格!(u>0, i>0) 4 g[u][0]表示不用替换该物品的实际价格 ! 5 d[0]表示的是第一个... 阅读全文
posted @ 2014-08-20 23:18 hjzqyx 阅读(368) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:将两端涂有颜色的木棒连在一起,并且连接处的颜色相同! 3 思路:将每一个单词看成一个节点,建立节点之间的无向图!判断是否是欧拉回路或者是欧拉路 4 5 并查集判通 + 奇度节点个数等于2或者0 6 */ 7 #include 8 #include 9... 阅读全文
posted @ 2014-08-19 17:21 hjzqyx 阅读(306) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:单词拼接,前一个单词的末尾字母和后一个单词的开头字母相同 3 思路:将一个单词的开头和末尾单词分别做两个点并建一条有向边!然后判断是否存在欧拉回路或者欧拉路 4 5 再次强调有向图欧拉路或欧拉回路的判定方法: 6 (1)有向图G为欧拉图(存在欧拉回路),当且仅当... 阅读全文
posted @ 2014-08-19 11:57 hjzqyx 阅读(349) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 #define N 505 6 using namespace std; 7 8 int g[N][N]; 9 int n, m;10 int vis[N], linker[N];11 bool dfs... 阅读全文
posted @ 2014-08-18 14:44 hjzqyx 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-08-18 12:03 hjzqyx 阅读(283) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:用木板盖住泥泞的地方,不能盖住草。木板任意长!可以重叠覆盖! '*'表示泥泞的地方,'.'表示草! 3 思路: 4 首先让我们回忆一下HDU 2119 Matrix这一道题,一个矩阵中只有0, 1,然后让我们通过选择一行,或者 5 ... 阅读全文
posted @ 2014-08-17 23:09 hjzqyx 阅读(273) 评论(0) 推荐(0) 编辑
摘要:定义一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每条路径就是一个弱连通子集.由上面可以得出:1.... 阅读全文
posted @ 2014-08-17 15:58 hjzqyx 阅读(585) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意: 出租车 有一个出发的时间,从点(a, b)到点(c, d),时间为 3 abs(a-c)+abs(b-d)! 一辆车可以在运完一个乘客后运另一个乘客, 4 条件是此车要在预约开始前一分钟之前到达出发地, 问最少需要几辆车 5 搞定所有预约。 6 ... 阅读全文
posted @ 2014-08-17 15:56 hjzqyx 阅读(382) 评论(0) 推荐(0) 编辑