上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 题目大意:求生成树上最长边与最短边的差值最小是多少。解题思路:kruskal+枚举+剪枝。先排序枚举所有的生成树,求最小的。一些基本性质别忘了n个点最少要n-1条边,小于的就没必要求了。一棵生成树如果已经成功添加n-1条边就没必要再算剩下的了可以很好的剪枝。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 struct ss{ 6 int x,y,z; 7 }e[5010]; 8 int set[105]; 9 i 阅读全文
posted @ 2011-08-28 15:41 我们一直在努力 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 随着开学的到来,今年的暑期集训也标志着结束了,感觉过得好快,好快,还有好多要学的地方没学完呢。还不想现在就结束。这个假期虽然忙碌但很充实特别是进入八月份以来,在这短短的二十天时间里学会了很多,也有很多的感触和反思。好吧开始正文。放假后(也就是集训前)的打算是把各专题再仔细的过一遍,对以前许多没接触到的知识点学习并掌握,最终对知识点有个系统的把握。为此刚开始集训时,采取的是每个专题一周进行训练,不同于以往的地方是现在的时间多,没有太多的杂事要做,在制定训练计划时把每个专题的各方面知识点都选的有题,但实行起来比较难,首先好多知识点以前没接触别说去做题了,其次zoj的英文题目太长,都看不懂,这样做了 阅读全文
posted @ 2011-08-28 11:11 我们一直在努力 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 解题思路比较明确,但代码量之大细节之多,就没写,把一位大牛的代码先放这,学的思路清晰。(有时间这道题一定要再写一遍)。View Code 1 #include <iostream> 2 #include <algorithm> 3 #include <string> 4 #define MAX_N 25 5 using namespace std; 6 7 //记录所有节点名 8 struct node 9 { 10 string name; 11 int con[MAX_N + 1]; //记录原始的当前... 阅读全文
posted @ 2011-08-26 15:37 我们一直在努力 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 今天第一次做差分约束系统的题,以前看过不过没用看太明白就放了,今天再次静下来好好的把它pass了,看了几个小时就找了道题做,中间有一个细节一直没太明白,就是关于边界为什么要加一或者减一。晚上的时候跟超神聊时,他提了下 我就突然明白了,这样是为了边界点不被重负计算。View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define MAX_INT 123456789 6 struct node 7 { 8 int v; 9 阅读全文
posted @ 2011-08-25 19:59 我们一直在努力 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 题意就不说了,说下注意的地方,第一数据量很大必须用邻接表,第二输入的边有重边,第三题目给的最大和的范围有错,应给用64位。这样都注意了再加上SPFA就可以顺利的PASS。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 const int N=1000005; 6 const int inf=1000000000; 7 struct ss{ 8 int y,value,next; 9 }edge[N],redge[N]; 阅读全文
posted @ 2011-08-25 14:11 我们一直在努力 阅读(216) 评论(0) 推荐(0) 编辑
摘要: ACM比赛经验:推荐此篇文章打印,与模板放在一起。1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做。交完每道题都要先打印。2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的。基本上比赛中前几名的队都没人吃,除非领先很多。3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好成绩,这样的例子太多了。所以到参赛地后要时刻不忘自己是来比赛的,好好休息、备战。 4. 参赛前一天要睡10个小时以上,非常有助于保持比赛中的精力,很多时候 阅读全文
posted @ 2011-08-24 11:28 我们一直在努力 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目大意就不用说了,做题方法就是前面我说过的A*算法,但这道题我WA了无数次,首先有重边即使你意识到有重边,用邻接表来存储也不一定对,也就是要说的其次了在用Dijkstra的时候在初始化dist[]时更应该注意,要选重边中的最小那一条边,原因你细想下就知道了因为后面要用到A*算法,这该算法的h[x]表示的是该点到目的地的最短距离(这样表示不是太恰当),而Dijkstra算法每次选最小的边如果在初始化时存的不是最小的(但它是目前最小的)那结果可想而知!!!View Code 1 #include <iostream> 2 #include <cstdio> 3 #incl 阅读全文
posted @ 2011-08-24 11:12 我们一直在努力 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1724题目大意:给你一个最大费用,让你在费用容许的范围内(情况下)求有源点到终点的最短距离,也就是一般的单源最小距离,不同之处在于加了费用限制。用现有的求最短距离的的方法是不可能解的。我们都知道,求最短距离的实质就是贪心(到达同样的点是所花的费用或者距离最少)我们可以这样使用优先队列,让只要到达某个点所花的费用总和小于给定的费用的所有顶点都进队列,这样每次让距离最小的出队列,如果出队列的是终点则此时的最小距离就是最费用的范围内的最短距离。近来做题一直困惑的不是 题不会做或者没思路而是以前不习惯用邻接表,一直没用过,而这几道题呢,最 阅读全文
posted @ 2011-08-24 09:27 我们一直在努力 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3268题目大意,在有向图中,所有点到给定的点一来回所花时间的最小值。刚看到这题第一个想法floyd,不过马上意识到肯定超时,1000^3的复杂度是不能接受的,就想可以以给定点为源点使用Dijkstra这样可以求出所有点回来的路,但是所有点去的路怎么求,想到了搜索(类似于枚举)但这样视乎是不可能的。就想到了可以把所有点去给定点的单向路我们把反过来所花时间大小不变,这样所有点到给定点的距离不就变成了给定点到所有的点的距离,通过转置矩阵正好可以满足需求,同时可以重复的利用Dijkstra函数的接口,最后在所有点所花时间中取最大值即可。V 阅读全文
posted @ 2011-08-23 17:02 我们一直在努力 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 原来这就是传说中的A*.第一次写的A*,多多感谢alpc55推荐的这道好题。先说说原先读到这到题目的想法,以前也听讲过k短路,我还以为就是多做几次dijkstra,或是在dijkstra算法选边的时候控制一些条件。听alpc55说是用A*启发式搜索,直接使用广度优先搜索会暴空间。当时听着也不怎么理解,就是把这些话记下来了。回来搞了两天,也翻了些资料,终于把这个算法弄出来了。 先说说启发式搜索吧。通常在解决问题的时候,我们需要用到搜索算法,由已知状态推出新的状态,然后检验新的状态是不是就是我们要求的最优解。检验完所有的状态实际上就相当于遍历了一张隐式图。遗憾的是,所有的状态组成的状态空间往往是成 阅读全文
posted @ 2011-08-23 10:40 我们一直在努力 阅读(372) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页