傳送門:
題目描述:
xhrlyb和她的小夥伴cwbc在玩捉迷藏遊戲。 cwbc藏在多個不區分大小寫的字串中。 好奇的xhrlyb想知道,在每個字串中cwbc作為子串行分別出現了多少次。 由於cwbc可能出現的次數過多,你只需要輸出每個答案對2000120420010122取模後的結果。 聰明的你在仔細閱讀題目後,一定可以順利的解決這個問題!
輸入有多行,每行乙個字串。輸出資料應有多行,每行表示答案取模後的結果。
每行字串長度不超過2×10
5,字串總長度不超過106。
示例1輸入
cwbc輸出1
示例2輸入
acdcecfwgwhwibjbkblcmcnco
輸出81
解題思路:先去除多餘字元,轉換成小寫
c->cw>cwb>cwbc;
cw序列的數量:向後遍歷,每當遇見w字元,cw序列數=原cw序列數+c字元數;
cwb序列的數量:向後遍歷,每當遇見b字元,cwb序列數=原cwb序列數+cw序列數;
cwbc序列的數量:向後遍歷,每當遇見c字元,cwbc序列數=原cwbc序列數+cwb序列數。
#include#define mod 2000120420010122
using namespace std;
char str1[200005],str2[200005];
int main()
}int m=j;
for(i=0;iif(str2[i]=='w')
if(str2[i]=='b')
}printf("%lld\n",b[3]);
}}
牛客小白月賽3 B 躲藏
題目鏈結 xhrlyb和她的小夥伴cwbc在玩捉迷藏遊戲。cwbc藏在多個不區分大小寫的字串中。好奇的xhrlyb想知道,在每個字串中cwbc作為子串行分別出現了多少次。由於cwbc可能出現的次數過多,你只需要輸出每個答案對 2000120420010122 2000120420010122 200...
牛客小白月賽3 B 躲藏 動態規劃
第一眼看以為是kmp,然後仔細一看是子串行,再看資料範圍,暴力的話肯定會超時,所以這道題需要用動態規劃來寫,令 f i j j 1,2,3,4 表示前 i 個字元中,匹配了字串 cwbc 的前多少位,那麼有轉移方程 f i 1 f i 1 1 s i c mod f i 2 f i 1 2 s i ...
牛客網小白月賽3 B 躲藏 簡單DP
b 躲藏 xhrlyb和她的小夥伴cwbc在玩捉迷藏遊戲。cwbc藏在多個不區分大小寫的字串中。好奇的xhrlyb想知道,在每個字串中cwbc作為子串行分別出現了多少次。由於cwbc可能出現的次數過多,你只需要輸出每個答案對2000120420010122取模後的結果。聰明的你在仔細閱讀題目後,一定...