傳說中差分kmp

2021-07-25 03:46:55 字數 837 閱讀 1080

codeforces 471d

題意:你建造了一堵牆,這堵牆是由n個塔組成的,每個塔相互連線,且各自有乙個高度,你給你自己的牆起了乙個名字,叫大象。

豬也建造了一堵牆。問你最多能從豬建的牆中找到幾個大象。你可以將你自己的牆中的塔向上提公升,或者下降,可以降到地下。

解析:開始題意沒有理解。不是你對牆做任意的行為,而是你可以把你的牆的基底的高度改變。此題可以抽象成用豬的牆取匹配大象,問最多能匹配幾次。

而實際上單個牆的高度對匹配無影響,而牆之間的高度,才會對匹配產生影響。分別對豬和大象求差分(實際上就是用後面的減去前面的)判斷最多能匹配幾次。此外還要有乙個特殊處理。當豬的牆長度為1的時候,一定能匹配n次(及大象的長度)

**:

#include using namespace std;

int nexta[300000];

int a[300000],b[300000];

int s[300000],t[300000];

int n,w;

void getnexta()

else

}}int kmp()

else

if(j == w)

}return ans;

}int main()

for(int i = 0; i < w; i ++)

if(w == 1)

n--,w--;

for(int i = 0; i < n; i ++)

for(int i = 0; i < w; i++)

int ans = kmp();

printf("%d\n",ans);

}

傳說中的MTU

通訊術語 最大傳輸單元 maximum transmission unit,mtu 是指一種通訊協議的某一層上面所能通過的最大資料報大小 以位元組為單位 最大傳輸單元這個引數通常與通訊介面有關 網路介面卡 串列埠等 網際網路協議允許ip分片,這樣就可以將資料報分成足夠小的片段以通過那些最大傳輸單元小...

傳說中的truncate html

學習用rails做blog的時候要用到rails的truncate功能。h truncate post.content,100,問題來了,將html截斷後出現不完整的tag,導致後續的文章排版都錯亂了。本來考慮是不是自己寫乙個,正在思考思路,結果祭起google,好嗎,已經有牛人寫了 簡單記錄一下 ...

傳說中的二分查詢

很久以前在csdn的編碼挑戰欄裡第一次看到 90 的程式設計師無法正確實現二分查詢 這種挑釁性的論斷,那時候我還是個演算法盲,基本二分查詢也只是聽說而已,但還是對此深表懷疑。出於各種原因也沒有動手試一試。近期開始練基本功,到查詢這一塊時,特別留意了下這個話題,原來出自 程式設計珠璣 計算機程式設計藝...