P2375 [NOI2014]動物園
考慮kmp。
這個題的主要問題就在於怎樣使復雜度是正確的O(n)。
可以先預處理一個數組cnt[]表示不考慮不能相交這個限制,有多少個border。
這個東西其實也就是fail樹上的深度。
然後考慮怎麽算num,直接暴力跳到長度<=i/2為止,第一合法個位置的cnt就是答案。
這樣做復雜度依然是均攤O(n)的,因為j每次最多+1。
考慮Z-box。
求出每個後綴和原串的lcp後。
枚舉每一個合法後綴的左端點在什麽地方。
然後這個後綴會對長度為min(i,lcp(suf))產生一個貢獻,取min那一步是為了不能相交。
P2375 [NOI2014]動物園
相關推薦
[洛谷P2375] [NOI2014]動物園
幫助 noi2014 math 保持 存在 題意 href 正整數 bit 洛谷題目鏈接:[NOI2014]動物園 題目描述 近日,園長發現動物園中好吃懶做的動物越來越多了。例如企鵝,只會賣萌向遊客要吃的。為了整治動物園的不良風氣,讓動物們憑自己的真才實學向遊客要吃的,園長
【KMP】洛谷P2375 [NOI2014]動物園 題解
clu 控制 () borde 會有 strlen 觀察 約束 brush 一開始的方向應該對了,但是沒有想到合理的優化還是沒寫出來…… 題目描述 近日,園長發現動物園中好吃懶做的動物越來越多了。例如企鵝,只會賣萌向遊客要吃的。為了整治動物園的不良風氣,讓
【題解】洛谷P2375 [NOI2014] 動物園(KMP)
洛谷P2375:https://www.luogu.org/problemnew/show/P2375 思路 這道題可以說是完全重新整理了本蒟蒻對KMP的理解 感覺對next陣列的理解上升到一個新的高度 首先題目給出了next陣列的定義 關於整個字串 next[len]為字首與字尾相同的最
P2375 [NOI2014]動物園
order 後綴 kmp 不能 一個數 怎麽 動物 復雜 noi2014 考慮kmp。 這個題的主要問題就在於怎樣使復雜度是正確的O(n)。 可以先預處理一個數組cnt[]表示不考慮不能相交這個限制,有多少個border。 這個東西其實也就是fail樹上的深度。 然後考慮怎
BZOJ3670: [Noi2014]動物園
參考 space ++ align urn 情況 sin algorithm ext 【傳送門:BZOJ3670】 簡要題意: 給出一個st字符串,定義一個sum數組,sum[i]表示st[1...i]中,所有前綴和後綴不重疊的情況下,前綴和後綴相等的數量,比如
【題解】NOI2014動物園
字符 可能 namespace 標記 題目 pro gpo bits 後綴 傳送門:洛谷P2375 一直到寫到這道題目才發現我一直都理解了假的KMP……fail數組:fail[i]為從1-i(包含i)在內的字符串,相同的最長前後綴長度。 那麽我們可以先思考暴力:先求出所有的
BZOJ 3670 NOI2014 動物園 KMP+dp
con 長度 iostream nbsp OS i++ 最長 spa != 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 題意概述:令num[i]表示字符串由1~i的字符形成的前綴中不相重疊的相同前後
[bzoj3670] [NOI2014][lg2375] 動物園
cnblogs void char next數組 color string pac sca %d nxt數組為KMP的next數組num[i]儲存了i前面可以匹配的串的個數。先在KMP求nxt中順便求出num最後再找到對於i的最大的前後綴不重疊的可匹配的j,ans*=(
Luogu P2375 動物園 kmp
第一個 幫助 構造 procedure [1] 向前走 定義 con 包含 P2375 動物園 題目描述 近日,園長發現動物園中好吃懶做的動物越來越多了。例如企鵝,只會賣萌向遊客要吃的。為了整治動物園的不良風氣,讓動物們憑自己的真才實學向遊客要吃
【NOI2014】動物園
col pan round 字符 ++ 要求 blog 滿足 獲取 這道題因為自己把1000000007寫成了100000007而浪費了三個小時,所以告誡自己:數一下幾位!數一下幾位!數一下幾位! 先貼代碼~ 1 #include<cstdio> 2 #
P2375 動物園
ios Go fail for size printf () href CP 入口 題目的大意就是輸出以任意一個字符結尾,既是前綴,又是後綴,且長度不超過總長度的一半的方案書的乘積。 考慮使用kmp 在處理失配數組的同時,處理出來以每個字符結尾的時的,能有多少個前綴和後綴相
bzoj3670動物園【NOI2014】
Description 近日,園長髮現動物園中好吃懶做的動物越來越多了。例如企鵝,只會賣萌向遊客要吃的。為了整治動物園的不良風氣,讓動物們憑自己的真才實學向遊客要吃的,園長決定開設演算法班,讓動物們
[NOI2014]
求值 sig net 重新 一半 log name color max OJ題號:洛谷2375、BZOJ3670 思路: 一開始先寫了一個裸的KMP,在求next數組(f數組)的時候加了一個判斷j<<1是否>i+1(若大於則說明有重疊部分),後來發現並
【NOI2014】起床困難綜合癥 位運算+貪心
困難 hide 答案 none har class gif pre 位運算 這道題先求出0和-1經過處理後的答案 具體看代碼吧 #include<cstdio> #include<cstring> #include<algorithm>
【bzoj 3669】[Noi2014]魔法森林
str 得到 none data style iostream -a 說明 out Description 為了得到書法大家的真傳,小E同學下定決心去拜訪住在魔法森林中的隱士。魔法森林可以被看成一個包含個N節點M條邊的無向圖,節點標號為1..N,邊標號為1..M。初始時小E
bzoj3671 [Noi2014]隨機數生成器
col cin lan return clu ... class www src 傳送門:http://www.lydsy.com/JudgeOnline/problem.php?id=3671 【題解】 貪心從1...n*m取,開兩個5000*5000的數組就夠了,可以重
【BZOJ3671】[Noi2014]隨機數生成器 暴力
put noi2014 noi get ems amp name light urn 【BZOJ3535】[Noi2014]隨機數生成器 Description Input 第1行包含5個整數,依次為 x_0,a,b,c,d ,描述小H采用的隨機數生成
【bzoj3671】[Noi2014]隨機數生成器 貪心
方法 geo light 隨機數生成器 turn ring 表示 交換 復雜 題目描述 輸入 第1行包含5個整數,依次為 x_0,a,b,c,d ,描述小H采用的隨機數生成算法所需的隨機種子。第2行包含三個整數 N,M,Q ,表示小H希望生成一個1到 N×
bzoj3669【NOI2014】魔法森林
用途 math ont 數組 mono pro struct logs oid pre.cjk { font-family: "Droid Sans Fallback", monospace } p { margin-bottom: 0.25cm; line-height:
[NOI2014]起床困難綜合癥
log ont temp 題解 比較 main 沒有 位運算 std 【題解】 並不算很困難的貪心題。位運算畢竟是針對每一位的,從前向後處理,如果某一位1比0更優且可取1就使它為1。比較0和1的結果要單取這一位來看,但是題目中所給的參數並沒有必要全