我的思考
文章平均质量分 84
BACKUP_zw
github: github.com/zhewang95
blog: zhewang95.github.io
展开
-
两种强连通分量算法——tarjan和kosaraju
这两个算法其实都非常简单,其中tarjan算法只需进行一次dfs,更为高效。但我更喜欢kosaraju算法,因为这个算法的思考过程更加巧妙。tarjan算法的思想非常简单直观,随便找篇教程就很容易理解,下面我主要讲讲kosaraju算法。kosaraju算法进行两次dfs,第一次在原图上进行,并在结点递归调用返回时将结点压入一个栈中,第二次dfs在原图的逆图上进行,并且初始点选择栈中最上面原创 2014-11-29 10:28:04 · 5721 阅读 · 0 评论 -
读背包九讲之二——完全背包
没想到完全背包还有如此神奇的写法。学习了。还了解了和快速求幂类似的二进制思想。对于为什么完全背包能够这样直接从s[i][1]到v遍历可行并且必须这样,可以从两个层面理解。一是从抽象的概念角度,也就是文章里所说的,对于状态dp[j],由于可能多次取到同一个物品,所以从已经遍历的方向向未遍历的方向遍历是正确的,并且只有以这个方向遍历才是正确的。而是从具体的代码执行流程考虑,假设dp[j]第一次原创 2014-11-25 21:29:39 · 339 阅读 · 0 评论 -
我所理解的kmp算法
从现在起,这个博客不再是单纯的为了记录刷题的数量,开始侧重于文章的质量,希望能尽量多的反映我自己思维的结果。以kmp算法为起点,继续学习其他模式匹配算法。其实我倒觉得,kmp算法的难度被很多人夸大了,包括我的数据结构老师。个人觉得严蔚敏的c语言版数据结构讲的kmp还是很不错的,就是数组下标从1开始让我在理解的时候老是搞混。首先看看最原始的模式匹配算法对于以下主串及模式串是怎样运行的:...原创 2014-11-24 19:08:40 · 480 阅读 · 0 评论 -
soj2093: Farmer John
soj上的一题,自己没想清楚就做结果坑了好久,先上题目Problem D: Farmer JohnIf you once took part in USACO, which is short for USA Computing Olympiad,you will know who is Farmer John. Well, I am also sure that some of原创 2014-12-05 10:33:17 · 447 阅读 · 0 评论