原创 KMP算法中關於next數組的探究

轉自:http://www.cnblogs.com/cxiaojia/archive/2011/09/16/kmp.html 看了一天的KMP,其中最蛋疼的莫過於next數組的意思了,看了好多人的資料,包括matrix67大牛的博客,看了

原创 About面試的種種

這學期管了兩個俱樂部技術方面的事情。距離招新過去也快兩三週了,有面過技術的,也有面過常務的。從各式各樣小孩的表現來看,還是有些話想寫一下,提醒作爲面試官的自己,也給今後將要面對各種面試的我一個啓發。 As an interviewer:

原创 操作系統——進程9問

買了本《現代操作系統》,前面的介紹部分直接略過,在回家的路上直接從進程開始看。對併發、多道程序設計有了初步的瞭解,在此將心得稍微寫一下。 1、什麼是進程? 進程是正在運行程序的一個實例,可以把他比作計算機正在做的某一件事情。 2、什麼

原创 基於社交網站的社會學理論學習

這兩天在看教主的Paper,前兩天看了介紹性的第1-3部分,今天看第四部分,模模糊糊的不知所云,乾脆把前面三部分又看了一遍,總算把思路理了一下。 教主論文要解決的三個問題是: 1、形成不同結構社交網站的因素有哪些; 2、如何設計出一個形

原创 POJ 2185 KMP中next數組的應用

這道題一開始沒明白意思,後來一查,是說給定一個字符矩陣,然後把能夠構成這個字符矩陣的最小字符矩陣的字符個數給求出來。 解法是KMP中next數組的應用,先對每一行進行get_next,求出他們的最小公倍數;再對每一列進行get_next,

原创 SRM 555 DIV2 555

挺有意思的一道DP,題目大意是說,給你一個01構成的字符串,問你最少切幾刀,能把切成的子串都分成5的某一次方,如果不存在,就輸出-1。 DP的思路:1、從左往右掃,如果掃到的這一位與之前所有數構成的子串是5的某次方,就記錄f[i]

原创 Floyd算法的幾個用法

1、求多個點之間的最短路,最廣爲人知的用法:for(int k = 0; k < n; k ++) for(int i = 0; i < n; i ++) for(int j =

原创 概率DP小結

昨天從金華回來,成績不理想,但是也沒辦法,自己的問題,想知道比賽詳情的請戳http://bbs.whu.edu.cn/wForum/disparticle.php?boardName=ACM_ICPC&ID=1105535232&pos=

原创 Light OJ 1129 Trie樹 動態建樹

做了一道POJ 2001,對TRIE樹的思想差不多理解了。其實TRIE樹的思想很簡單,就是建樹,每個節點都有26個子節點(如果是數字的話,那就是10個),然後每個單詞從頭到尾按照樹的深度找下去,最後所有這些單詞就掛在TRIE樹上啦。 對

原创 KMP算法中的NEXT數組的應用

KMP算法中的關鍵部分就是next數組,沒有這個數組的維護,KMP算法根本沒法實現。 下面來簡單講一下他的用途,這兩天會持續更新: 1、求一個字符串中最長子串:(在保證這個字符串是由這些子串連續構成的情況下) 比如說一個子串:abcab

原创 Light OJ 1055 BFS

題目大意:給一個圖,圖上有A,B,C三個小人,每移動一次,都是對三個小人進行同時移動,如果碰到'#',或者其他人的時候就自動不走。 思路:BFS求最短路,但是要同時記錄三個人的狀態,幸虧這道題的圖只有10*10,3個人的狀態也就10^6,

原创 <轉>KMP算法中關於next數組的探究

轉自:http://www.cnblogs.com/cxiaojia/archive/2011/09/16/kmp.html 看了一天的KMP,其中最蛋疼的莫過於next數組的意思了,看了好多人的資料,包括matrix67大牛的博客,看了

原创 POJ 3164 最小樹形圖

看這個知識點純屬臨時抱佛腳,畢竟每年PKU時不時會出些圖論的偏知識點,大致瞭解一下思路也好。 用到的是朱劉算法,具體過程網上都有,我就不贅述了。貌似這道題還是我們WHUACM前輩們出的?題幹裏好多熟悉的名字啊。 要注意的是,初始化鄰接矩陣

原创 ZOJ 3308 最小費用最大流

不管是最大流還是費用流,模板一般都不會出什麼問題,一般錯就錯在建圖…… 這也是一道裸的套費用流模板的題,不得不說,費用流代碼量真是大,初始化什麼的完成基本就快100行代碼了。 費用流的基本思想是多次最短路,所以在MCMF函數裏會看到whi

原创 操作系統——進程間通信Peterson解法代碼簡析

Peterson解法解決的是進程中競爭的問題,比如:有兩個進程——進程0、進程1要讀取共享內存中的數據,假設他們幾乎同時進入了共享內存中,那麼就會造成一定的問題。 代碼如下: #define N 2 //進程數爲2 int turn;