給出乙個長度為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邊連向的點首先我們來...