![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论算法
文章平均质量分 72
chrisblogtk
这个作者很懒,什么都没留下…
展开
-
寻找欧拉路(图论算法)
Description如果图存在一笔画,则一笔画的路径称为欧拉路Input第一行n,m,有n个点,m条边,以下描述每条边连接的两点。Output欧拉或欧拉回路Sample Input 5 5 1 2 2 3 3 4 4 5 5 1 Sample Output 1 5 4 3 2 1解题思路:用一个二维原创 2016-04-08 21:45:35 · 1093 阅读 · 0 评论 -
最短路径问题Dijkstra(图论算法)
Description平面上有n个点(NInput输入文件short.in,共有n+m+3行,其中: 第一行为一个整数n。 第2行到第n+1行(共n行),每行的两个整数x和y,描述一个点的坐标(以一个空格隔开)。 第n+2行为一个整数m,表示图中的连线个数。 此后的m行,每行描述一条连线,由两个整数I,j组成,表示第i个点和第j个点之间有连线。 最后一行:两个整数s和t,分原创 2016-04-08 21:46:12 · 869 阅读 · 0 评论 -
最小花费(图论算法)
Description在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。Input第一行输入两个用空格隔开的正整数n和m,分别表示总人数和可以互相转账的人的对数。以下m行每行输入三个用空格隔开的正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需原创 2016-04-08 21:46:15 · 1814 阅读 · 0 评论 -
信使(图论算法)
Description战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。直至所有n个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨原创 2016-04-08 21:46:20 · 2675 阅读 · 0 评论 -
热浪(图论算法)
Description德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。FarmerJohn此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。 FJ已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点先一共原创 2016-04-08 21:46:23 · 544 阅读 · 0 评论 -
分糖果(图论算法)
Description童年的我们,将和朋友分享美好的事物作为自己的快乐。这天,C小朋友得到了Plenty ofcandies,将要把这些糖果分给要好的朋友们。已知糖果从一个人传给另一个人需要1秒的时间,同一个小朋友不会重复接受糖果。由于糖果足够多,如果某时刻某小朋友接受了糖果,他会将糖果分成若干份,分给那些在他身旁且还没有得到糖果的小朋友们,而且自己会吃一些糖果。由于嘴馋,小朋友们等不及将原创 2016-04-08 21:46:30 · 1717 阅读 · 0 评论 -
观光旅游(图论算法)
Description 在桑给巴尔岛的Adelton城镇上有一个旅游机构。它们决定在提供许多的其它吸引之外,再向客人们提供旅游本镇的服务。为了从提供的吸引服务中尽可能地获利,这个旅游机构接收了一个精明决定:在相同的起点与终点之间找出一最短路线。 你的任务是编写一条程序来找类似的的一条路线。在这个镇上,有N个十字路口(编号1至N),两个十字路口之间可以有多条道路连接,有M条道路(编号为原创 2016-04-08 21:46:33 · 1311 阅读 · 0 评论 -
刻录光盘(图论算法)
Description在PJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,又来不及去买了,怎么办呢? 组委会把这个难题交给了DYJ,DYJ分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,原创 2016-04-08 21:46:35 · 817 阅读 · 0 评论 -
亲戚(图论算法)
Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 Input第一行:三个整数n,m,p,(n以下m行:每行两个数Mi,Mj,1接下来p行:每行两原创 2016-04-08 21:46:40 · 1365 阅读 · 0 评论 -
Information(图论算法)
DescriptionIt isa war between Country Alpha and Country Beta. Country Alpha getsfollowing information about Country Beta:CountryBeta has n (2 <= n <= 100) cities numbered from 0 to n-1.Each原创 2016-04-08 21:46:42 · 273 阅读 · 0 评论 -
珍珠(图论算法)
Description有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于正中间。即在所有珍珠的重量重,该珍珠的重量列(n+1)/2位。下面给出将一对珍珠进行比较的办法: 给你一架天平用来比较珍珠的重量,我们可以比出两个珍珠哪个更重一些,在作出一系列的比较后,我们可以将某些肯定不具备中间重量的珍珠拿走。 例如:下列给出原创 2016-04-08 21:46:10 · 1398 阅读 · 0 评论 -
最短路径问题Floyed-Warshall(图…
Description平面上有n个点(NInput输入文件short.in,共有n+m+3行,其中: 第一行为一个整数n。 第2行到第n+1行(共n行),每行的两个整数x和y,描述一个点的坐标(以一个空格隔开)。 第n+2行为一个整数m,表示图中的连线个数。 此后的m行,每行描述一条连线,由两个整数I,j组成,表示第i个点和第j个点之间有连线。 最后一行:两个整数s和t,分原创 2016-04-08 21:46:00 · 586 阅读 · 0 评论 -
有关图的存储结构的程序1(图论算…
用深度优先搜索建立图的邻接矩阵。程序:var g:array[1..100,1..100]of longint; v:array[1..100]of boolean; n,e,i,j:longint;procedure init; var x,y,i:longint; begin fillchar(g,sizeof(g),0); re原创 2016-04-08 21:45:38 · 269 阅读 · 0 评论 -
有关图的存储结构的程序2(图论算…
用深度优先搜索建立图的邻接表。程序:var g:array[1..100,1..100]of longint; num:array[1..100]of longint; v:array[1..100]of boolean; n,m:longint;procedure init; var i,x,y:longint; begin readl原创 2016-04-08 21:45:40 · 276 阅读 · 0 评论 -
有关图的存储结构的程序3(图论算…
用广度优先搜索建立图的邻接矩阵。程序:var state:array[0..100] of longint; v:array[0..100] of boolean; g:array[0..100,0..100] of longint; n,e:longint;procedure bfs; var head,tail,i,ans:longint;原创 2016-04-08 21:45:43 · 315 阅读 · 0 评论 -
有关图的存储结构的程序4(图论算…
用广度优先搜索建立图的邻接表。程序:var state,num:array[0..100] of longint; v:array[0..100] of boolean; g:array[0..100,0..100] of longint; n,e:longint;procedure bfs; var head,tail,i,ans:longint;原创 2016-04-08 21:45:45 · 294 阅读 · 0 评论 -
哈密尔顿环(图论算法)
题目:欧拉回路是指不重复地走过所有路径的回路,而哈密尔顿环是指不重复地走过所有的点,并且最后还能回到起点的回路。解题思路:先用邻接表储存数据,然后循环,当某个点不在之前曾经访问过的图里,就开始深度优先搜索,记录答案,然后输出即可。程序:var g:array[1..100,1..100]of longint; start,i,long,x,y,k,n,m:longin原创 2016-04-08 21:45:48 · 6230 阅读 · 0 评论 -
求连通分量-方法1(图论算法)
Description求一个图的连通分量Inputn顶点数(边Output连通分量Sample Input 5 1 2 3 4 2 3 0 0 Sample Output 4解题思路:用深度优先搜索建立图的邻接矩阵。程序:const maxn=100;var原创 2016-04-08 21:45:50 · 2469 阅读 · 0 评论 -
求连通分量-方法2(图论算法)
Description求一个图的连通分量Inputn顶点数(边Output连通分量Sample Input 5 1 2 3 4 2 3 0 0 Sample Output 4解题思路:用深度优先搜索建立图的邻接表。程序:var e:array[0..100,0..100原创 2016-04-08 21:45:53 · 619 阅读 · 0 评论 -
求连通分量-方法3(图论算法)
Description求一个图的连通分量Inputn顶点数(边Output连通分量Sample Input 5 1 2 3 4 2 3 0 0 Sample Output 4解题思路:用广度优先搜索建立图的邻接矩阵。程序:var e:array[0..100,0..10原创 2016-04-08 21:45:55 · 906 阅读 · 0 评论 -
求连通分量-方法4(图论算法)
Description求一个图的连通分量Inputn顶点数(边Output连通分量Sample Input 5 1 2 3 4 2 3 0 0 Sample Output 4解题思路:用广度优先搜索建立图的邻接表。程序:var e:array[0..100,0..100] o原创 2016-04-08 21:45:58 · 288 阅读 · 0 评论 -
矩形(图论算法)
Description在一个平面上有n个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。 每一个矩形都是一个块。 如果两个不同的矩形有公共线段,那么它们就组成了一个新的块来覆盖它们原来的两个块。 例子: 在图1中的矩形组成了两个不同的块。 写一个程序: 从文件PRO.IN中读入矩形的个数以及它们的顶点。 找出这些矩形形成的原创 2016-04-08 21:46:47 · 2315 阅读 · 0 评论