牛客寒假第六場 刪除子串行

2022-10-08 21:00:14 字數 893 閱讀 3531

給出乙個長度為nnn的字串sss和乙個長度為mmm的不含重複字元的字串ttt,每次你可以在sss中刪除乙個等於ttt的子串行,最多可以刪除多少次?

如字串s=ababccds=ababccds=ababccd,t=abct=abct=abc,可以選擇s1s2s5,s1s2s6,s1s4s5,s1s4s6,s3s4s5,s3s4s6s_1s_2s_5,s_1s_2s_6,s_1s_4s_5,s_1s_4s_6,s_3s_4s_5,s_3s_4s_6s1s2s5,s1s2s6,s1s4s5,s1s4s6,s3s4s5,s3s4s6進行刪除,刪除後分別得到abcd,abcd,bacd,bacd,abcd,abcdabcd,abcd,bacd,bacd,abcd,abcdabcd,abcd,bacd,bacd,abcd,abcd。

如果刪除後得到abcdabcdabcd,則還可以再進行一次刪除,最多可以刪除222次。

在字串中求定序的子串行的個數(不能重複)

我們可以一組一組的篩查

從t中最後乙個字母開始,選一組,完成後繼續選,

想到用stack這個資料結構,從t中的最後乙個字元的棧開始遍歷,必須滿足(前乙個的最後棧頂元素小於後乙個的棧頂元素),在完成pop一組的情況下計數,若某次沒有符合的元素了,就退出。

怎麼使用map呢???

可以用vector 代替stack

ve.emplace_back(),ve.pop_back(),ve.back()
#includeusing namespace std;

const int n=1e6+1;

int dp[n][27];

void solve()

} }int ans=0;

while(1)

牛客多校第六場

d 題意感覺說的不是很清楚,一開始題意弄錯了,以為是最優的方案,結果是對於每個盒子這個 so clever 的人的做法是優先選擇盡可能大的物品裝完乙個盒子,我就不知道這個人 聰明了。思路 賽後知道題意後,5分鐘寫完,瞎暴力就一發過了,我自己都有點出乎意料真水了。includeusing namesp...

2023年牛客寒假集訓營第六場題解

a 回文括號序列計數 思路 只有 形式的才符合題意,但 不是回文串 所以只有0的時候才行,其他都不行 include using namespace std intmain return0 c 末三位 思路 易得 include using namespace std intmain return0...

2019牛客多校第六場C(PAM)

傳送門 不會pam,建議看一下該部落格pam 維護乙個陣列,表示節點對於答案的貢獻 那麼如何計算這個值呢,首先我們需要知道它是由誰轉移而來的,比如該節點表示的是aabbbbaa,他是由abbbba轉移而來的,我們在計算aabbbbaa時首先要加上abbbba,然後還有一些fail邊連向的點首先我們來...