原创 hdu3746kmp循環節
題目大意: 給定一個字符串s, 問至少在s的後面添加幾個字符才能使s成爲以一個循環節至少出現兩次的字符串。 思路: 利用kmp算法的next數組求循環節。假設當前字符串s的長度爲n 若next[n] ==0,則需要添加n個字符,使之變爲最
原创 hdu3336(kmp)
題目大意: 給定一個字符串s,求s的每個前綴在此字符串中出現的次數,然後對次數求和,然後再對10007取模,就是要輸出的答案。 思路: 剛開始也許會想,枚舉前綴,求出每個前綴出現的次數,但這樣效率太低。 利用kmp算法的next數組可以很
原创 poj2155(樹狀數組)
// #include<cstdio> #include<cstring> const int maxn = 1005; int c[maxn][maxn],n,t,T; int lowbit(int x) { return x & (
原创 面試題40(數組中出現一次的數字)
#include <iostream> using namespace std; const int maxn = 100; int a[maxn]; void findNumberAppearOnce(int* data, int l
原创 《劍指offer》面試題4(合併數組)
#include <iostream> using namespace std; void mergeArray(int *A1,int& length1, int*A2, int length2)//把A2合併到A1中,假設A1,A2
原创 it智力題
1、假設你站在鏡子前,擡起左手,擡起右手,看看鏡中的自己。當你擡起左手時,鏡中的自己擡起的似乎是右手。可是當你仰頭時,鏡中的自己也在仰頭,而不是低頭。爲什麼鏡子中的影像似乎顛倒了左右,卻沒有顛倒上下? 答:上下和左右的定義不同,上下是面對
原创 reader and writer
Var rmutex,wmutex: semophore:=1,1; Readcount: integer:=0; begin parbegin Reader: begin repeat wait(rmutex
原创 linux PATH環境變量全解析
關於PATH的作用: www.2cto.com PATH說簡單點就是一個字符串變量,當輸入命令的時候LINUX會去查找PATH裏面記錄的路徑。 比如在根目錄/下可以輸入命令ls, 在/usr目錄下也可以輸入ls, 但其實ls
原创 hdu2594kmp
題意: 給定兩個字符串p和s,求字符串p的前綴和字符串s的後綴能匹配的最大長度,並輸出匹配的子串 思路: 把s連接在p的後面,對新的字符串p求next數組,#include <cstdio> #include <cstring> cons
原创 《劍指offer》面試題4(替換空格)
#include <iostream> #include <cstdio> #include <cstring> using namespace std; void replaceBlank(char* str); int main()
原创 zoj1002(Fire Net)
題目描述: 給定一個二維的字符數組,'X' 表示當前位置是wall, '.' 表示當前位置可以放置blockhouse。求最多能在給定的圖形中放置多少各blockhouse。(要求blockhouse之間不能在同一行或同一
原创 ubuntu14.04安裝搜狗輸入法
deb格式的搜狗輸入法,搜狗拼音官網可以下載到 如果你的系統已經裝過fctix請先完全卸載 sudo apt-get purge fcitx* sudo purge autoremove2 使用deb安裝工具gdebi,這個
原创 hdu2087(kmp)
題意: 給定一個文本串s和一個模式串p,找出模式串在文本串中出現的次數。注意:模式串在文本串中出現的位置不能重疊 當然本題不用kmp算法也能通過,借用本題回憶一下kmp算法。 kmp算法要用到一個數組記錄一下信息,此數組取名爲next[
原创 《劍指offer》鏈表的結點的插入刪除
#include <iostream> #include <stack> using namespace std; struct ListNode { int value; struct ListNode* next;
原创 《劍指offer》面試題10(二進制中1的個數)
#include <iostream> using namespace std; int numberOf1(int n) { int cnt=0; while(n) { n=n&(n-1);