
ACM_图论
文章平均质量分 85
AC_Dreameng
行有余力,则来刷题!
展开
-
POJ 1849 Two【树的直径+树的遍历】
题意:两辆清雪车从同一点出发,要清理所有路上的积雪,问耗油量(路程和)最少是多少。不需要回到起点。要使路程最近,若起点在树的直径上,则两辆车往不同的方向走,直径上的边只用走一遍,其他的要走两遍。若起点不在直径上,则两人一起走到直径上,再往不同的方向走。综上:路径和为直径+2*非直径.即:2*sum-d.(sum为路径和,d为直径)原创 2017-07-14 16:26:44 · 667 阅读 · 0 评论 -
POJ 2186 Popular Cows 【Tarjan+缩点】
题意:给你n头牛,m个关系,每个关系表示a崇拜b,问有多少牛被所有牛所崇拜。崇拜具有传递性。还是先Tarjan缩点,找出出度为0的点,此点为缩点后的点,并判断数量,如果数量为1,则存在,否则不存在。那个点在缩点前的数量即为被所有牛崇拜的数量。为加强理解,给上几组数据。原创 2017-07-21 15:58:10 · 598 阅读 · 0 评论 -
HDU 1269 迷宫城堡【Tarjan强连通分量 模板】
题意:判断图的强连通分量是否为一.模板题.Targan算法介绍及模板:http://blog.youkuaiyun.com/hurmishine/article/details/75248876原创 2017-07-17 16:54:36 · 743 阅读 · 0 评论 -
UVALive - 4287 Proving Equivalences【强连通缩点】【Tarjan算法】
题意: 给出N个命题,要求你证明这N个命题的等价性 比如有4个命题a,b,c,d,我们证明a<->b, b<->c,c<->d,每次证明都是双向的,因此一共用了6次推导 如果换成证明a->b,b->c,c->d,d->a,每次证明都是单向的,而只需4次就可以证明所有命题的等价性 现在给出M个命题证明,问还需要证明几个,才可以保证N个命题等价。分析: 缩点后求DAG中入度为0和出度为0的联通块的较大值。此题在刘汝佳《算法竞赛入门经典训练指南》P322此题和POJ1236差不多原创 2017-07-20 16:24:47 · 689 阅读 · 0 评论 -
POJ 1236 Network of Schools【强连通缩点】【Tarjan算法】
题意: 一些学校连成了网络, 在学校之间存在某个协议:每个学校都维护一张传送表,表明他们要负责将收到的软件传送到表中的所有学校。如果A在B的表中,那么B不一定在A的表中。 现在的任务就是,给出所有学校及他们维护的表,问1、如果所有学校都要被传送到,那么需要几份软件备份;2、如果只用一份软件备份,那么需要添加几条边?PS:第二道Tarjan,并且还用了缩点,搞了一下午,注意,此题中Tarjan用到的栈要定义成全局变量.....参考博客:原创 2017-07-19 21:42:35 · 834 阅读 · 0 评论 -
2017ccpc全国邀请赛(湖南湘潭) H. Highway XTOJ 1267 【树的直径】
题意:n个城镇之间有n-1条道路相连,现在有个有钱人要来修n-1条高速公路,使得任意两个城镇之间都有唯一的高速公路,问你最多要花费多少钱。对于样例1:最远的两个点为4和5对于1,从1修到4,花费4对于2,从2修到5,花费4对于3,从3修到4,花费5对于4,从4修到5,花费6对于5,从5修到4,花费6从4到5和从5到4是一样的,算一次即可。最终花费为4+4+5+6=19对于此题,要用到树的直径,输的直径就是一棵树上最远的两个节点。找到输的直径后,树上的点到直径上的两个端点(必为其中一原创 2017-07-11 11:03:15 · 1034 阅读 · 0 评论 -
HDU 2196 Computer 【树的直径】
网上好多博客多用树形DP来解决,但是用树的直径也可以解决。题意:有n台电脑,下面有n-1行,每行两个数据v,w,第i行表示,第i+1台电脑与第v台电脑之间的距离是w.求每台电脑离它最远的电脑的距离.原创 2017-07-12 11:04:15 · 779 阅读 · 0 评论 -
POJ 1985 Cow Maratho【树的直径】
题目大意:有n个农场,这n个农场有一些边连着,然后要你找出两个点,使得这一对点的路径长度最大,输出这个最大的长度.输入的最后一个参数没用....直接裸树的直径就可以了.之前都用DFS解决,现在是一下BFS.并且用了pair,建图方便多了,不用结构体,不用写构造函数,配合vector,简直完美...原创 2017-07-12 21:00:08 · 911 阅读 · 0 评论 -
图论题目建图小结
图论的题目,建好了图,就可以说完成一半的工作了,但是建图总的来说没有几种,但是配合不同的‘工具’就可以玩出不同的花样。这里说的‘工具’指数组或如vector等STL库。一、数组。这样最简单的建图方式,对于一些入门题目可以解决,但数据一大就不行了,并且空间复杂度高,对于稀疏图来说不太适用。可以pass二、用链表动态存储。有点复杂,但实际指针占用内存也有点大。再说有几个人能流利原创 2017-07-12 21:37:50 · 1247 阅读 · 0 评论 -
POJ 1383 Labyrinth 【树的直径】【真正的图】
题意:输入一个图,问你‘ . ’连成的区域,两个' . '之间的最长距离是多少.直接裸模板.但是注意输入的行和列,及超时解决.原创 2017-07-13 16:36:19 · 633 阅读 · 0 评论 -
POJ 2631 Roads in the North 【树的直径】
题意:输入是一系列行,每行包含三个正整数:一个村的数量,一个不同的村庄的数量,以及连接村庄的路段长度,以公里为单位。 所有路段都是双向的。您要输出一个整数:该地区最偏远的两个村庄之间的道路距离。现在可以直接裸树的直径的模板了。原创 2017-07-14 14:57:48 · 930 阅读 · 0 评论 -
HDU 3549 Flow Problem【最大流入门题】【Ford-Fulkerson算法】【Dinic算法】【ISAP算法】
最大流入门题:最大流问题在刘汝佳的《算法竞赛入门经典》和《算法竞赛入门经典训练指南》中均有纤细介绍。竞赛中通常可以使用Dinic算法和ISAP算法,但是Ford-Fulkerson算法理解起来简单一点。最大流问题吧算法代码当做模板,根据具体问题去建图就可以了。原创 2017-08-17 14:13:39 · 1207 阅读 · 0 评论