上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 39 下一页
  2014年2月18日
摘要: 题目链接题意 :有一个景点要修路,但是有些景点只有一条路可达,若是修路的话则有些景点就到不了,所以要临时搭一些路,以保证无论哪条路在修都能让游客到达任何一个景点思路 :把景点看成点,路看成边,看要加几条边使这个图变成双连通图。一开始我以为只要求出桥的个数,然后在每个桥的地方加一条边就行了,后来发现不是。例如:这个图中,桥有4条,但实际上只需要在1跟10,10跟9中间加两条边就行了。所以,实际上这个题是先进行缩点,然后求缩点后的图至少增加几条变能够变成双连通图。缩点之后构建成一颗树,所有的边都是桥,根据定理,任意一颗树,要想成为双连通图,则需要增加的边数为(这棵树上所有度数为1的结点的个数+1) 阅读全文
posted @ 2014-02-18 18:07 枫、 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意 : n个城市,给出你m个关系,代表这城市x到城市y需要h小时,但如果两个城市是联通的,则耗时变为0,给你两个城市的编号,问你从前一个城市到后一个城市需要花费多长时间。思路 :我能说这个代码我直接将3592的代码一改就是这个了,那个求最长路,这个求最短路,把松弛那块儿改一下就行。反正先建... 阅读全文
posted @ 2014-02-18 12:48 枫、 阅读(161) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3592题意 :给你一个n*m的矩阵,每个位置上都有一个字符,如果是数字代表这个地方有该数量的金矿,如果是*代表这个地方有传送带并且没有金矿,可以传送到指定的位置,如果是#代表该位置不可走,初始位置在左上角,只能向下或向右走,并且走到传送带的时候可选择是否传送。问当走出去的时候能获得的最大近况数是多少。思路 :先将二维矩阵转化成一维的点建图,可以向下向右建图,而且传送带也可以建边,缩点之后再建边,最后用spfa求最长路。#include #include #include #include using namespace std;const 阅读全文
posted @ 2014-02-18 09:17 枫、 阅读(243) 评论(0) 推荐(0) 编辑
  2014年2月17日
摘要: http://poj.org/problem?id=2186题意 :给你n头牛,m对关系,每对关系由两个编号组成,u和v代表着u认为v是受欢迎的,如果1认为2是受欢迎的,2认为3是受欢迎的,那1认为3也是受欢迎的。思路 :强联通分量的Tarjan做法,将这些牛之间的关系看成一个有向图,最受欢迎的那个牛的那个点一定是出度为0的点。Tarjan的基本资料:http://hi.baidu.com/lydrainbowcat/item/1c664b662b1a1692c4d2491c#include #include #include #include #include #include using 阅读全文
posted @ 2014-02-17 13:29 枫、 阅读(217) 评论(0) 推荐(0) 编辑
  2014年2月16日
摘要: http://poj.org/problem?id=1404题意 :手机上的要发短信的话,“我”字需要先按一下9键,再按3下6键,所以,现在想要重新布局每个键上的字母数,让最后的那个值最小,也就是说给你L个字母出现频率,让你将其分布在K个键上,字母顺序不可以变,每个字母出现的频率乘上他所在键的位置,再加总和最小即可。如果有多个解,尽量将字母往后边的键安排。思路 :表示比赛的时候根本没看出这是DP,没反应过来,比完了才知道。。。这道DP不太好想,正好看了一个大神的博客,http://www.cnblogs.com/skyivben/archive/2011/11/09/2243068.html 阅读全文
posted @ 2014-02-16 20:53 枫、 阅读(649) 评论(0) 推荐(0) 编辑
  2014年2月15日
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1646题意 : 话说我根本没读题,,,因为实在是太长了,我去看了输入输出才知道题讲的什么,大意是说给你一串运算式,里边包含了很多的多余的括号,让你去掉那些多余的括号,但是不能改变原来的式子中字母和运算符的位置。思路 :比赛的时候根本没做出来,当时并没有什么思路,一开始是单纯的以为模拟,但是想了想又不太是,所以没敢去做,这个题最重要的就是找到运算符的优先级,然后才能进行操作,所以可以先去掉所有的括号,然后再在合适的位置往上填括号即可。先将题目中的 阅读全文
posted @ 2014-02-15 21:11 枫、 阅读(270) 评论(0) 推荐(0) 编辑
  2014年2月14日
摘要: 刚好在找这方面的资料,看到了一片不错的,就全文转过来了,省的我以后再找找不到。 在C语言中,可以通过rand函数得到一个“伪随机数”。这个数是一个整数,其值大于等于0且小于等于RAND_MAX。rand函数和常量RAND_MAX都定义在库stdlib.h之中,这意味着必须在头文件中包含库stdlib 阅读全文
posted @ 2014-02-14 20:43 枫、 阅读(24325) 评论(2) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3007题意 :给你一个字符串,让你无论从什么地方分割,把这个字符串分成两部分s1和s2,然后再求出s3和s4,让你进行组合,看能出来多少种不同的形式。思路 :记得以前的时候就听他们讨论这道题,说是用map做会超时,所以我直接就没用map。。。。但是做这道题实在是太波折了,昨天晚上改了一晚上都不对,就是不知道哪里出了问题,今早上又改,改来改去才知道原来我new node后边缺了个括号,我很懵懂,我记得不用括号也行啊,而且我看到一个AC的代码就是没用括号,但是不加就不对,终于用了链地址法改对了能运行了,交上去因为数组开小了就越界了....... 阅读全文
posted @ 2014-02-14 09:13 枫、 阅读(472) 评论(0) 推荐(0) 编辑
  2014年2月12日
摘要: http://poj.org/problem?id=2406题意 :求最小的重复子串的个数。思路 :KMP。#include #include #include using namespace std ;const int maxn = 10000000 ;char ch[maxn] ;int next[maxn] ;int main(){ while(scanf("%s",ch)!=EOF) { if(ch[0] == '.') break ; int len = strlen(ch) ; int i = 0 , j =... 阅读全文
posted @ 2014-02-12 14:06 枫、 阅读(138) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1961题意 :给你一个字符串,让你输出到第几个字符时,循环结的个数。思路 :这个题和2409差不多,稍微修改一下,加一个循环就行了,用的也是KMP。#include #include #include using namespace std ;const int maxn = 1000010 ;char ch[maxn] ;int next[maxn] ;int main(){ int n ; int test = 1 ; while(scanf("%d%*c",&n)!=EOF) { if(n == ... 阅读全文
posted @ 2014-02-12 14:00 枫、 阅读(132) 评论(0) 推荐(0) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 39 下一页