uoj219 優秀的拆分 字串

2022-03-27 02:06:05 字數 1137 閱讀 8737

題意:找出字串之中所有符合$aabb$形式子串的劃分方式。

這道題正解是$sa$……我不會……

然而二分+$hash$可過……可過……

首先我們列舉每乙個$a$的長度,然後我們二分長度搞出來各個位置與上一段的$lcs$,$lcp$長度。隨後我們將$lcs$起點向左,$lcp$終點向右移動長度個字元,如果二者仍然沒有相遇,差分相加。最後相鄰的統計個數即可。

(語言說不太明白,還是上**吧)

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

int maxn=50005,base=31;7

const

int mod=998244353;8

char

s[maxn];

9long

long

hash[maxn],t[maxn],u[maxn],v[maxn],ans;

10 inline long

long gethash(int l,int

r)11

14int

haha()

1535

int head=i-pos+1

;36 l=1,r=len,pos=0;37

while(l<=r)

3843

int tail=i+pos-1

;44 head=max(head+len-1,i),tail=min(tail,i+len-1

);45

if(head<=tail)

4650

}51 ans=0;52

for(int i=1;i<=n;i++)u[i]+=u[i-1],v[i]+=v[i-1

];53

for(int i=1;i1

];54 printf("

%lld\n

",ans);55}

56}57int sb=haha();

58int main()

uoj219

至於$sa$寫法……以後再回來填吧……(有生之年系列)

拆分字串

拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...

拆分字串

本函式可以將 目標字串 以 指定字串 進行拆分,並通過表結構返回結果。如下 create or replace type str split is table of varchar2 4000 create or replace function splitstr p string in varch...

拆分字串

拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...