上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: http://poj.org/problem?id=2457题意:求起点1到终点m的最短距离。这个可以spfa||dijkstra。这题关键的是要输出从1--m走过的路径。用path[]记录下,每一步的祖先,用shortest[]逆序输出即可。这题re了n次。到现在也不理解,为什么先if(dis[m]==INF){//为什么先判断就不会re.不明白 printf("-1\n"); continue; }这个就没问题。View Code // I'm lanjiangzhou//C#include <stdio.h>#include <s... 阅读全文
posted @ 2013-04-02 17:19 南下的小程序员 阅读(241) 评论(0) 推荐(0)
摘要: 题意:求各个点到起点1的距离是否<=m,满足的话,就按从小大到的顺序输出结果。分析:dijkstra。求起点到各个点的最短距离和m判断一下就行了。坑爹的是我wa了13次。就是在一个下标出问题的,白白费了4个小时。不认真。就是下面的sum.原因自己分析。嗨,死在这里了。我把i放在coutnts[]里面了,原因还要说吗????View Code // I'm lanjiangzhou//C#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h># 阅读全文
posted @ 2013-04-02 17:11 南下的小程序员 阅读(147) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1847题意:这题关键是题意理解了就会做了。大致题意:现在有一铁路网络,有n个交叉点,和一些开关。通过开关可以改变路线方向,使其能驶向其他交叉点。开关的初始状态已知,即(初始直接某两点直接相连)。A到B.问从出发点到目的地最少要动多少开关才能到达。分析:想想就会发现是最短路问题。假如要从1--3如果有直接连接的边则不要动开关,如果要通过1-2,2-3则需要懂开关一次。这题就是找从出发点到目的地最少要动多少开关才能到达。算法:dijkstra||floyd都行。这里用floyd,反正数据不大才100.不过要改下状态方程。接存在的边权设为0,间接 阅读全文
posted @ 2013-04-02 16:52 南下的小程序员 阅读(169) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1511题意:(图论147)。求从起点到各个点的最短回路。分析:用两次spfa就行了。第一次spfa是从出发点start到各个点,求一次最短距离,第二次spfa是从各个点反向求到出发点的最短距离。处理:第一次spfa只要保存正向边,第二次用反向边进行spfa就可以了。最后把两次求得的距离相加就是最短回路。View Code // I'm the Topcoder//C#include <stdio.h>#include <stdlib.h>#include <string.h>#include &l 阅读全文
posted @ 2013-04-02 16:30 南下的小程序员 阅读(304) 评论(0) 推荐(0)
摘要: 1、定义:欧拉通路(回路):通过图(无向图或有向图)中所有边一次且仅一次行遍图中所有顶点的通路(回路)称为欧拉通路(回路)。欧拉图与半欧拉图:具有欧拉回路的图称为欧拉图,具有欧拉通路而无欧拉回路的图称为半欧拉图。桥:设无向图G=<V,E>,若存在边集E的一个非空子集E1,使得p(G-E1)>p(G),而对于E1的任意真子集E2,均有p(G-E2)=p(G),则称E1是G的边割集,或简称割集;若E1是单元集,即E1={e},则称e为割边或桥。[p(G)表示图G的连通分支数.]2、定理:<无向图>定理1:无向图G是欧拉图当且仅当G是连通图,且G中没有奇度顶点。定理2: 阅读全文
posted @ 2013-04-01 08:40 南下的小程序员 阅读(778) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1780//题意:找到一个数子序列包含所有的n位数一次切仅一次。分析:首先要明白为什么选择一个好的数字序列,至多只需要按键10^n+n-1就可以打开保险箱了。n位数有10^种编码方案(即10^n组数),要使得一个数字序列包含这10^n组n位数,且序列的长度最短,唯一的可能是每组数出现一次切尽一次,且前一组数的后n-1位是后以数组的前n-1位,这样10^n组数各取1位,共10^n位,再加上最后一组数的后n-1位,总位数是10^n+n-1.求序列的方法是:对于当前长度为n-1的序列,其后添加一个数字,使得添加后的序列没有在前面出现过。需要注意的是 阅读全文
posted @ 2013-04-01 01:46 南下的小程序员 阅读(221) 评论(0) 推荐(0)
摘要: 搞了这么久,acm有时会让人丧失理智。acm需要的是静,耐得住性子,这一过程会磨灭很多个性,也正是这一过程,让人得到成长。而我在这一过程中似乎并没有成长,一心想的是能不能多切几道题,能不能再切几道题,完全失去了耐心,甚至不择手段,失去了一个真正acm本因有的血性,像师傅虽然在一个学院,却仍然可以进现场赛,差点就去wordfinal。我一直觉得他是我见过的最强大的acmer,可我觉得他给我的不仅仅是强大,他教会我的是做人。一个真正acmer玩家是怎样做人的。您说话总是那么客气,我水平如此低下,您依旧耐心指导,要是我们两个倒过来,我肯定都不要理你,因为我们之间水平差距太大了。朽木也要可雕,而我显. 阅读全文
posted @ 2013-03-31 21:44 南下的小程序员 阅读(178) 评论(2) 推荐(0)
摘要: 题意:能否找到一条路径经过所有开着门的房间,并使得:1:通过门后立即把门关上,2:关上的门不在打开,3:最后回到你自己的房间(房间0),并且所有的门都已经关闭。题目已知这是连通图。分析:以房间为顶点,连接房间之间的门为边构造图。根据题意,输入文件的每个测试数据所构造的图都是连通的。本题实际上是判断一个图中是否存在欧拉回路或者欧拉通路。无向图存在欧拉回路的充要条件一个无向图存在欧拉回路,当且仅当该图所有顶点度数都是偶数且该图是连通图。有向图存在欧拉回路的充要条件一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图这题是无向图。这题的关键其实是在读入输入。。。1:因为有空行,而且这些空行都 阅读全文
posted @ 2013-03-29 14:45 南下的小程序员 阅读(260) 评论(0) 推荐(0)
摘要: 题意:求棋子从起点到终点的最小步数。分析:bfs。注意:用while(scanf("%s%s",str1,str2)!=EOF)会tle。这边2次tle后来改成while(cin>>str1>>str2)就过了。收获:bfs实在是弱,这题几乎是按照自己思路,一点一点敲出来的,不错。继续加油。(这题以前做过,当时是用数组模拟队列,是照别人做的。)View Code // I'm the Topcoder//C#include <stdio.h>#include <stdlib.h>#include <string. 阅读全文
posted @ 2013-03-29 09:30 南下的小程序员 阅读(148) 评论(0) 推荐(0)
摘要: 题意:游戏采用N*N的棋盘,方格数为1~~N^2.其实玩家位置在1,每次投一次骰子,问最少需要几次可以到大N*N这个格子。其中格子中有蛇和梯子,在蛇头则降至蛇尾,在梯子底部则升至梯子首部。分析:蛇和梯子占据哪些方格并不重要,只需要知道蛇和梯子的起始位置即可。在走了若干步之后,对于一个特定的格子只有两种状态:(1):在走了这些步数后存在一种方案使得玩家的位置位于此格(2):不存在这样一种方案。所以,只需要记住每次投骰子后玩家可能到达的位置,直到可以到达第N*N个方格处时停止扩展。View Code // I'm the Topcoder//C#include <stdio.h> 阅读全文
posted @ 2013-03-28 17:38 南下的小程序员 阅读(198) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 下一页