題意:
給定三個串,求包含這三個串的總串的最小長度。
思路:
字串雜湊。
當然,也可以用kmp,然而我自己沒有想到,看來對kmp的理解仍然不夠深。
這裡也引用一下其他博主的kmp做法。
實現:
#include
using
namespace
std;
typedef
unsigned
long
long ull;
const ull b = 1e8 + 7;
const
int max_size = 1e5 + 10;
const
int inf = 0x3f3f3f3f;
char s[3][max_size];
int ans;
int type[6][3] = ;
bool contain(char* a, char* b)//a是否在b中出現過
return
false;
}//a的字尾和b的字首相等的最大長度
int overlap(char* a, char* b)
return ans;
}void solve()
else
if(contain(s[type[i][2]], s[type[i][1]]))
else
ans = min(ans, (int)(strlen(s[0]) + strlen(s[1]) + strlen(s[2]) - l1 - l2));
}cout
<< ans << endl;
}int main()
cf509e 數學 字串
題目大意 給定乙個字串,求任意子串中母音字母i,e,a,o,u,y 所佔比例之和。思路 咋一看很困難,細細一想就知道怎麼作了。因為要求所有子串,所以列舉每個長度,求出當前長度的所有子串的母音字母所佔比例,求和即為結果。接下來就是怎麼求所有子串中母音字母個數以及所佔比例了。因為當子串長度為i時,必然可...
CF 7D 字串雜湊 回文
定義k 回文串如下 1 任何串 包括空串 都是0 回文 2 乙個長度為n的回文串,若它的前n 2個字元和後n 2個字元都是 k 1 回文,則它是k 回文。現給定乙個串 長度不超過5,000,000 設它的每個字首分別是x 回文,求所有這些x值的和。比如abacaba,a 是1 回文,aba 是2 回...
字串雜湊
參照演算法筆記p109,甲級1039 先假設字串均由大寫字母a z構成。在這個基礎上,不妨把a z視為0 25,這樣就把26個大寫字母對應到了26進製中。接著,按照將26進製轉化為10進製的思路,由進製的轉換結論可知,在進製轉換過程中,得到的10進製肯定是唯一的,由此便可實現將字串對映為整數的需求 ...