ACM扬帆起航之图论
文章平均质量分 87
修远兮,求索兮。
hhjian6666
路漫漫其修远兮,吾将上下而求索。修远兮,求索兮。
展开
-
畅通工程续
某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个正整数N和M(0接下来是M行道路信息。原创 2017-11-30 09:38:12 · 211 阅读 · 0 评论 -
最短路
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input输入包括多组数据。每组数据第一行是两个整数N、M(N输入保证至少存在1条商店到赛场的路线。 Output对于每组输入,输出一行,表示工作人员从商店走到赛原创 2017-11-30 09:38:58 · 295 阅读 · 0 评论 -
畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数N、村庄数目M ( 行对应村庄间道路的成本,每行给出一对正整数,分别是两原创 2017-11-30 08:39:48 · 207 阅读 · 0 评论 -
Highways
The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public highways. So the traffic is difficult in Flatopia. The Flatopian government is aware of this problem. They're pla原创 2017-11-30 08:41:30 · 203 阅读 · 0 评论 -
Agri-Net
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. Farmer John ordered a high sp原创 2017-11-30 08:43:07 · 241 阅读 · 0 评论 -
Truck History
非常坑的一道题,,,TLE 了n次,,,把temp, n, i, j 放在全局变量就会TLE, 放在main函数里面就AC,玄学玄学,,,看网上的各种优化,一脸懵逼,就这样AC了,,,哈哈!!!!Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable原创 2017-11-30 09:33:44 · 238 阅读 · 0 评论 -
Constructing Roads
Constructing RoadsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13800 Accepted Submission(s): 5241Problem DescriptionThere are转载 2018-01-24 21:00:45 · 180 阅读 · 0 评论 -
还是畅通工程
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24531 Accepted Submission(s): 10874Problem Description某省调查乡村交通状况,得到的统计表中列出了转载 2018-01-24 21:01:17 · 176 阅读 · 0 评论 -
5909: 货物运输(树上两点最近公共祖先LCA)
5909: 货物运输时间限制: 1 Sec 内存限制: 128 MB提交: 99 解决: 32[提交][状态][讨论版][命题人:admin]题目描述在一片苍茫的大海上,有n座岛屿,岛屿与岛屿之间由桥梁连接,所有的岛屿刚好被桥梁连接成一个树形结构,即共n-1架桥梁,且从任何一座岛屿出发都能到达其他任何一座岛屿。第i座桥梁有一个承重量wi,表示该桥梁一次性最多通过重量为wi的货物。现在有m个货物...原创 2018-04-25 11:41:36 · 245 阅读 · 0 评论 -
5911: 计数问题(二维树状数组)
5911: 计数问题时间限制: 1 Sec 内存限制: 128 MB提交: 187 解决: 53[提交][状态][讨论版][命题人:admin]题目描述 一个n*m的方格,初始时每个格子有一个整数权值。接下来每次有2种操作:改变一个格子的权值;求一个子矩阵中某种特定权值出现的个数。输入第一行有两个数n,m。接下来n行,每行m个数,第i+1行第j个数表示格子(i,j)的初始权值。接下来输入一个整...原创 2018-04-25 13:24:54 · 237 阅读 · 0 评论 -
有向图强连通Tarjan算法(杭电1269模板题)
迷宫城堡Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20075 Accepted Submission(s): 8761Problem Description为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N&...原创 2018-05-01 15:55:13 · 215 阅读 · 0 评论 -
强连通算法--Tarjan个人理解+详解
首先我们引入定义:1、有向图G中,以顶点v为起点的弧的数目称为v的出度,记做deg+(v);以顶点v为终点的弧的数目称为v的入度,记做deg-(v)。2、如果在有向图G中,有一条<u,v>有向道路,则v称为u可达的,或者说,从u可达v。3、如果有向图G的任意两个顶点都互相可达,则称图 G是强连通图,如果有向图G存在两顶点u和v使得u不能到v,或者v不能到u,则称图G是强非连通图。4、如...转载 2018-05-01 15:58:06 · 325 阅读 · 0 评论 -
求强连通分量的三种算法——Kosaraju, Tarjan, Gabow
就我所知,有三种时间复杂度为O(n)的方法可以求强连通分量,分别是Kosaraju、Tarjan和Gabow。Kosaraju算法的步骤为对图G进行DFS,并按照遍历完成的先后顺序进行标号。将图G中所有的边反向得到G'。对G'进行DFS,每轮DFS都选择编号最大的点最为当前的遍历树的根。最后,遍历得到的森林就是SCC的集合。该算法的优点在于,最后得到的节点是按照拓扑序组织好的,在求解2-SAT的过...转载 2018-05-01 16:05:55 · 446 阅读 · 0 评论 -
POJ 2553:The Bottom of a Graph(强连通Tarjan)
The Bottom of a GraphTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 11760 Accepted: 4849DescriptionWe will use the following (standard) definitions from graph theory. Let V be a nonempty an...原创 2018-05-01 16:43:47 · 295 阅读 · 0 评论 -
最小点基和最小权点基
百度一下,发现这方面的资料太少。最小权点基貌似没有。 这两类问题都需要强连通分量来解决。强连通的模版(三个)在我博客的模版分类中有。点基:在有向图G=(G,V)中,B是V的子集。如果对于任意的y属于V,不属于B,都存在一个x属于B,使得x是y的前代(有一条边从x到y),则称B是一个点基。PS:做题的时候间接相连也算。也就是有一条路径从x到y。最小点基:顶点最少的点基。最小权点基:顶点对应的权...原创 2018-05-01 22:39:27 · 627 阅读 · 0 评论 -
图论整理
图(Graph)是表示物件与物件之间的关系的数学对象,是图论的基本研究对象。一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条。若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n-1条边(弧)组成的图被称为原无向图的生成树重要的图编辑树平面图连通图强连通图有向无...原创 2018-05-01 21:57:27 · 2105 阅读 · 0 评论 -
图论(一)图:顶点,边,同构,有向/无向图,权重,路径(最短路径),环,连通图/连通分量
图(graph)是数据结构和算法学中最强大的框架之一(或许没有之一)。图几乎可以用来表现所有类型的结构或系统,从交通网络到通信网络,从下棋游戏到最优流程,从任务分配到人际交互网络,图都有广阔的用武之地。而要进入图论的世界,清晰、准确的基本概念是必须的前提和基础。下面对其最核心和最重要的概念作出说明。关于图论的概念异乎寻常的多,先掌握下面最核心最重要的,足够开展一些工作了,其它的再到实践中不断去理解...转载 2018-04-30 21:28:40 · 30696 阅读 · 4 评论 -
图论(二)树:节点,枝,根,叶,度,层/深度/高度,双亲/孩子/兄弟,祖先/后代,森林
建立了图(graph)的认识,“树”就好理解了。“树”是一种很特别的图(graph)。用图来定义“树”:任意2点之间都连通,并且没有“环”的图。下面的图就是一颗树,因此,树是图的特例。 当然,由于树是一种特别有用的数据结构,因此,它有着一些自身的特点和概念: 一、节点(node) 就是图(graph)的顶点(vertex)。如上图中的顶点:0,1,2,3,4,5,6,7,8。 二、枝(branc...转载 2018-04-30 21:34:27 · 13431 阅读 · 1 评论 -
图论(三)图的遍历
图建构好后,针对具体的问题,我们常常需要通盘的读取图中的信息,包括顶点(vertex)和边(edge),以及它们之间的关系。这种读取图中所有信息的方法就是图的遍历(traversal),也称为搜索(search),就是从图中某个顶点出发,沿着一些边访问图中所有的顶点,且使每个顶点仅被访问一次。遍历是很多图论算法的基础。 遍历需要决定从哪里开始读,依照什么顺序读,要读到哪里为止。如果遍历方法与需解...转载 2018-04-30 21:36:52 · 533 阅读 · 0 评论 -
图论(四)宽度优先搜索(BFS)
宽度优先搜索(BFS, Breadth First Search)是一个针对图和树的遍历算法。发明于上世纪50年代末60年代初,最初用于解决迷宫最短路径和网络路由等问题。对于下面的树而言,BFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4,5,6,7,8。 BFS使用队列(queue)来实施算法过程,队列(queue)有着先进先出FIFO(First Input First Output...转载 2018-04-30 21:38:04 · 516 阅读 · 1 评论 -
图论(五)深度优先搜索(DFS)
深度优先搜索(DFS, Depth First Search)是一个针对图和树的遍历算法。早在19世纪就被用于解决迷宫问题。对于下面的树而言,DFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4,5,6,7,8(假定左分枝和右分枝中优先选择左分枝)。 DFS的实现方式相比于BFS应该说大同小异,只是把queue换成了stack而已,stack具有后进先出LIFO(Last Input Fi...转载 2018-04-30 21:40:10 · 355 阅读 · 0 评论 -
图论(六)图的两种表示方法:邻接表,邻接矩阵
如果要用图来解决问题,首先我们必须采用某种数据结构来存储和表示“图”。相对于数组、链表等来说,图的存储结构就复杂的多了。首先,图上的任何一个顶点都可以被看作是第一个顶点,任意顶点的邻接顶点之间也不存在次序关系。还记得在《图论(一)基本概念》中的“同构图”吧,图的形状可以千变万化的。因此也就无法以数据元素在内存中的物理位置来表示元素之间的关系,也就是说,图不可能用数组这样简单的顺序存储结构来表示。其...转载 2018-04-30 21:41:28 · 14435 阅读 · 0 评论 -
图论(七)哥尼斯堡七桥问题
1736年,年仅29岁的数学家欧拉来到普鲁士的古城哥尼斯堡(哲学家康德的故乡,今俄罗斯加里宁格勒)。普瑞格尔河正好从市中心流过,河中心有两座小岛,岛和两岸之间建筑有七座古桥。 欧拉发现当地居民有一项消遣活动,就是试图每座桥恰好走过一遍并回到原出发点,但从来没人成功过。欧拉证明了这种走法是不可能的。现在看来,欧拉的证明过程非常简单,但他对七桥问题的抽象和论证思想,开创了一个新的学科:图论(Grap...转载 2018-04-30 21:42:07 · 15893 阅读 · 1 评论 -
图论(八)最小生成树
一个正在进行信息化建设的国家级贫困县,需要在下属9个乡镇之间架设光纤网络。为减少建设难度,光纤网主要沿着这9个乡镇之间互连的公路进行铺设。这9个乡镇之间的公路网以及相互之间的距离(单位:km)如下图所示: 如果你是工程师,该怎样设计线路铺设方案?当然,你可以直接把所有的公路网都铺设上光缆,这样的线路总长度是247公里。但如果你是这样想的,那么我一定会怀疑你到底是不是一名工程师!你可以再设计一种方...转载 2018-04-30 21:42:49 · 289 阅读 · 0 评论 -
图论(九)最小生成树-Kruskal算法
前面说过,Kruskal是从最短边着手构建最小生成树的。其基本过程是:先对图中的所有边按照权重值从小到大进行排序,然后着手选取边构建最小生成树。如果直接从小到大按顺序选取,有可能形成了环,所以对环的处理就成了核心问题。我们还是以前面的乡镇假设光纤网络为例:Kruskal算法工作步骤如下:(1) 将边进行排序。BeginEndWeightei7ch8ab10af11bg12bh12di16fg17b...转载 2018-04-30 21:43:42 · 219 阅读 · 0 评论 -
图论(十)最小生成树-Prim算法
前面说过,Prim算法是从顶点着手构建最小生成树的。应该说,Prim算法比Kruskal更简单。我们还是以前面的乡镇假设光纤网络为例:Prim算法工作步骤(1) 构建全部顶点集V,选取初始顶点,加入顶点集U。构建顶点集V={a,b,c,d,e,f,g,h,i},从中选取任意一个顶点。我们假设从顶点a开始。将a加入到顶点集U={a}中。(2) 找U中顶点与V-U中顶点的所有边。 U中顶点只有a,V-...转载 2018-05-01 13:10:15 · 283 阅读 · 0 评论 -
图论算法
图的定义背景知识看到这篇博客相信一开始映入读者眼帘的就是下面这幅图了,这就是传说中的七桥问题(哥尼斯堡桥问题)。在哥尼斯堡,普雷格尔河环绕着奈佛夫岛(图中的A岛)。这条河将陆地分成了下面4个区域,该处还有着7座连接这些陆地的桥梁。问题是如何从某地出发,依次沿着各个桥,必须经过每座桥且每座桥只能经过1次,最终回到原地。不知道这个问题且好奇的童鞋现在肯定在忙活着找出来这道题的结果了。是伟大的数学家欧拉...转载 2018-05-01 13:48:25 · 8033 阅读 · 3 评论