題意:求各個字首在字串中的出現的個數和。
kmp匹配一次的複雜度是0(n),這題如果暴力查詢字首進行kmp匹配的話,果斷會跪。
其實這題又是一題next陣列的應用。
我們可以遞推,每次僅僅看前i個字元,看看它的增加會影響到多少個匹配,很明顯,next[i]能影響的它也能影響,而它又影響自己本身。這樣就能解出來了。
非常蛋疼地送了幾個wa給了long long...
**:
/*
* author: illuz * blog:
* file: hust1328.cpp
* create date: 2013-12-01 18:21:18
* descripton: kmp
*/#include #include const int maxn = 1e5 + 1;
int f[maxn], ans[maxn];
// 分別是next陣列和記錄像響數的陣列
char p[maxn];
void getval(int l) else j = f[j];
} f[0] = 0;
}int main()
printf("%lld\n", cnt);
} return 0;
}
13 2 8 使用者認證
from django.contrib import auth提供了使用者認證,即驗證使用者名稱以及密碼是否正確,一般需要username password兩個關鍵字引數,如果認證資訊有效,會返回乙個 user 物件。authenticate 會在user 物件上設定乙個屬性標識那種認證後端認證了該...
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...
1328 破壞回文串
給你乙個回文字串 palindrome 請你將其中 乙個 字元用任意小寫英文本母替換,使得結果字串的字典序最小,且 不是 回文串。請你返回結果字串。如果無法做到,則返回乙個空串。示例 1 輸入 palindrome abccba 輸出 aaccba 示例 2 輸入 palindrome a 輸出 1...