ACM-树以及路径问题
文章平均质量分 52
化蝶飞舞
正直阳光快乐直爽
展开
-
最小生成树(prime算法)
关于prim算法先把有的点放于一个集合(或者数组)里,这个集合里存放的是所有走过的点。初始值为0或者false表示还没有点声明一个一维数组用于记录各点的权值[可理解为起始点到目标点的距离],声明一个二维数组用于记录某点到某一点的权值,如果这两点不可达到,则设置为无穷大具体执行过程:先从某一点开始,把这一个开始的点放于声明的一个数组或者集合里,表明这一点已经被访问过。然后再从余下转载 2013-07-11 20:18:30 · 1157 阅读 · 0 评论 -
杭电4034,(foldy+最短路)。。
点击打开链接http://acm.hdu.edu.cn/showproblem.php?pid=4034;题意:给你一个有向图,点与点之间的最短距离给出,要求你求出最少有多少条边??思路:利用foldy函数,求出有多少条边可以被取代,再根据(n*(n-1)-被取代的边数。。即为答案!!具体见代码:#include<iostream>#include<cstdi...原创 2013-08-22 12:21:54 · 478 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1698
线段数组改了好久才改出来,就是在更新时,的范围出错了:注意:::::特别注意;在求算范围是分别在左右孩子时,即不应该是直接减再乘以改后的数。而是在求出中间值,在分别到两边个求出其值来!具体解释见代码:如下代码:http://acm.hdu.edu.cn/showproblem.php?pid=1698#include<iostream>#include<algori...原创 2013-07-14 22:13:14 · 567 阅读 · 0 评论 -
http://poj.org/problem?id=3468
poj上的题目,意思应该可以看懂。这就要注意几个问题,1:首先注意数组大小,因为题目明确说明了,因此int 是不够用的,这也是许多人不太注意的地方,导致一直wa,2:就是要注意数据的每次更新,每个根节点都在变,因此sum 也在变,注意每次更新时注意要根节点变 ,sum也要跟着变。3:要注意的就是:在左右节点变化时,注意中间(mind)的取值,(r-l+1)/2;这是应该注意,我个人认为比较...原创 2013-07-22 11:32:55 · 938 阅读 · 0 评论 -
http://poj.org/problem?id=3264
poj 水题一枚。。呵呵,,虽说是水题,但是还是有些地方要注意,我之前就wa好多次。。呵呵。。这题是关于线段树的入门级的水题。但还的仔细看题!首先:需要注意的是数组大小。咋样一看会发现,数据有点大,但是切不可盲目下结论,以为要开好大的数组,但是切记,在线段树内要求数组大些,但是对于这道题,在输入数据时,int 足够,注意。在线段树内,int可以,但是你定义的N要求扩大,如(m[n<&...原创 2013-07-22 16:31:45 · 728 阅读 · 0 评论 -
http://poj.org/problem?id=2828
这是今天的第二道线段树题了,,今天搞了好久终于把这道题解决了,这还得多亏学长助阵才得以快速解决它!以解我心中的怒火,(自己想了好久哇,太苦逼了),好了。开始聊正题吧!!说道这道题我第一次拿到还真不知该从哪下手,知道用线段树,但是好多地方纠结,所以一直在想,但是最终还是看了下别人的题解,加上自己的理解,与学长的讲解,才懂的。这道题首先从正面解有难度。这是插队的问题。从后面插入的人对前面的人的...原创 2013-07-22 22:59:29 · 795 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1166
题目:略;;思路:根据数据的结构太大,实现的功能复杂,即一般的代码达不到效果,而且运行时间可能会加长等等情况!因此这里就需要运用到树状数组,根节点去寻找所需的值。因此首先就要把所需的数据建立在一棵树上,即所谓建树,建好之后呢!在分类功能,根据那你所需的,分别写出功能。具体要主要的事项见代码:#include<iostream>#include<cstdio&g...原创 2013-07-11 19:11:06 · 571 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1556
这道杭电题以前有点不懂,但是现在懂了。。终于懂了。。附代码,三种方法哦!!!呵呵呵;见代码吧!!具体问题见代码分析!!方法一:(也是做容易想到的,线段树。)#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;...原创 2013-07-31 15:50:31 · 740 阅读 · 0 评论 -
zoj2750.。。有关做短路的问题!!
题目:http://http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1750。。他的意思就是:给出n个字典,接下来n行第一个是查看字典的时间,后面接的是这个成语,要求把每条成语连起来,以成语接龙的形式。字符串代表成语,如果第一个串的后4个字符与第二个串的前4个字符相等,那么说明它们能连起来,用的时间是第一个成语的时间,每组数据输...原创 2013-09-09 18:41:50 · 468 阅读 · 0 评论 -
zoj1092--直接foldy函数!!
http://http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=92题目意思:主要就是:给你一组国家和国家间的部分货币汇率兑换表,问你是否存在一种方式,从一种货币出发,经过一系列的货币兑换,最后返回该货币时大于出发时的数值?如果大于则“Yes”,否则“No”。。具体思路:因为求最终的数值问题!所以就可以根据转化,得知这就是...原创 2013-09-11 13:12:23 · 717 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1874。。
题意见题目:,略。。思路:看到走最短距离或最短时间,首先就要联系到prime函数,或foldy函数。题目意思很清楚。。这里主要注意几个地方,1:题目说A——》B与一条长为X的双向路,则这里在写的时候就得注意:双向路,长度可能不一样,因此算是就要进行比较大小并且在输入数据时必须将数据进行初始化,而且初始化必须注意,不能用memset函数,因为在当i==j时,距离为0,所以不能用memset....原创 2013-07-12 17:12:07 · 650 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1863
题意见题目:略:思路:主要根据是否关于路径的,若不管路径,只是求路的最短距离,,等就考虑prim函数。。具体见代码:#include<iostream>#include<cstdio>#include<cstring># define manx 1000005# define LEN 101using namespace std;int n,...原创 2013-07-12 17:18:21 · 634 阅读 · 0 评论 -
DIJ问题,最短路径
单源最短路径问题[Dijkstra实现]一、问题带权有向图G(E,V), 找出从给定源顶点s到其它顶点v的权最小路径。“最短路径” = 最小权二、问题求解:求1到5的最短路径值?三、执行过程:如果大家对这个问题的要求还不是很明白的话那么我再带着大家走一遍:第一次:从1-->2:10 此时从1-->3没有路径所有是无穷大 1--&...转载 2013-07-13 09:54:46 · 1363 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2066
迪杰斯特拉问题:郁闷了好久终于有头绪了,这问题还纠结,但是终于解决了。。就是要注意几个问题:首先对于问题必须分清楚初始位置与末位置,只是在DIJ问题中最重要的的,其次就是要把握好是:题目给的是路径数目还是有多少地点,而且对于地点数多数是以数据来明地点的,因此在只给出对少条路径时,也就必须比较出最大的地点是多少,就如此题,题目不是给的地点数,而是路径数。在写的时候就得注意。。。还有特别注意是就是...原创 2013-07-16 15:36:24 · 762 阅读 · 0 评论 -
zoj-1655.利用dij函数直接可以得出!
http://http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=655题目意思:思路一开始并不是很清晰,但是仔细想过之后就慢慢的有点思路了!!这里主要就是意思有必要说一下:有n个城市,有m 条路,一下就是n-1个物品(也代表n-1个城市)的重量,分别都是送到城市n的,接下来的数据就是x,y,z,代表的就是城市x到城市Y所要消耗...原创 2013-09-11 16:07:27 · 548 阅读 · 0 评论 -
剪枝———讲解
搜索中剪枝讲解:(在网上搜的,觉得还不错!)什么是剪枝 相信刚开始接触搜索算法的人,都做过类似迷宫这样的题目吧。我们在“走迷宫”的时候,一般回溯法思路是这样的:1. 这个方向有路可走;2. 往这个方向前进;3. 是死胡同,往回走,4. 重复第一步,直到找着出口 这样的思路很好理解,编程起来也比较容易。但是当迷宫的规模很大时,回溯法的缺点便暴露无遗:搜索耗时极...转载 2013-07-23 16:39:08 · 1476 阅读 · 0 评论