cf509e 數學 字串

2021-07-06 10:52:43 字數 801 閱讀 7232

題目大意:給定乙個字串,求任意子串中母音字母i, e, a, o, u, y

所佔比例之和。

思路:咋一看很困難,細細一想就知道怎麼作了。因為要求所有子串,所以列舉每個長度,求出當前長度的所有子串的母音字母所佔比例,求和即為結果。接下來就是怎麼求所有子串中母音字母個數以及所佔比例了。因為當子串長度為i時,必然可以有好多個,******(i)中分母值一定,分子值相加即可,所以我們可以不必考慮每個子串中母音字母的個數,只需要考慮子串長度為i時所有的原因字母數之和num即可。設陣列sub[i]表示第i個字元前面的原音字母個數。則子串長度為1時, num1即為sub[l](l為字串長度) , 子串長度為2 時,num2 =  num1 + sub[l - 1] - sub[1] .長度為3 時 ,num3 = num2 + sub[l - 2] - sub[2]……到此處,所有問題都已解決,直接列舉長度即可。

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define maxn 600000

int sub[maxn];

int main()

double ans = 0;

double num = 0;

for(int i = 1 ; i <= len ; i ++)

printf("%.7lf\n" , ans);

}return 0;

}

CF25E 字串雜湊 KMP

題意 給定三個串,求包含這三個串的總串的最小長度。思路 字串雜湊。當然,也可以用kmp,然而我自己沒有想到,看來對kmp的理解仍然不夠深。這裡也引用一下其他博主的kmp做法。實現 include using namespace std typedef unsigned long long ull c...

CF 554A 字串計數問題

題意 有乙個字元竄,其長度 20,現問你插入乙個字元,能使其變成多少種不同的字串 include include include include include include include include include include using namespace std define mm...

CF 7D 字串雜湊 回文

定義k 回文串如下 1 任何串 包括空串 都是0 回文 2 乙個長度為n的回文串,若它的前n 2個字元和後n 2個字元都是 k 1 回文,則它是k 回文。現給定乙個串 長度不超過5,000,000 設它的每個字首分別是x 回文,求所有這些x值的和。比如abacaba,a 是1 回文,aba 是2 回...