無名(noname) 字串

2022-05-11 02:10:54 字數 1519 閱讀 2917

因為是蒯的題所以沒想好名字,為什麼要用繁體呢?去看《唐詩三百首》吧!

題意很簡單,給你乙個串,求他有多少個不同的子串,滿足字首為a,字尾為b。

需要注意的是,串中所有的字母都是小寫字母。

不同的子串。

一共3行。

第一行母串s;

第二行串a;

第三行串b。

乙個數,即有多少不同的子串。

ababababab

100%:

length(s)<=2000;

length(a)<=2000;

length(b)<=2000;

30%:都少個0。

首先我們可以列舉子串是吧,這樣首先就來了乙個n^2的複雜度,然後我們判斷字首和字尾,這些其實沒什麼太難的部分,我們只要先預處理是否是字首和字尾,就可以很方便的解決了。

然後問題來了,我們怎麼在字串上判重呢?

這裡我們就要引入字串hash了。

我們把s字串從0到i的字串hash止記錄在hash【i】中,然後我們就可以得到字首的字串hash了。

hash[i]=(hash[i-1]*p+s[i]-'a'+1)%t;

那麼其它位怎麼表示呢?

我們可以令字串s【i】~s[j]=(hash[j]-hash[i-1]*p^(j-i+1))%t;(這裡p的次方可以首先求好存好)。

**:

#include#include

#include

#include

#include

#define ll long long

#define il inline

#define db double

using

namespace

std;

ll p=31,t=100000007

;ll hash[

2045

];bool vis[100000045

];ll ci[

2045

];il ll find(

int x,int

y)bool qian[2045

];bool hou[2045

];char s[2045

];char a[2045

];char b[2045

];int

len,len1,len2;

intmain()

for(int i=len-1;i>=len2-1;i--)

//for(int i=0;i//

printf("%d %d\n",qian[i],hou[i]);

int ans=0

;

for(int i=0;i)

for(int j=i;j)}}

printf(

"%d\n

",ans);

return0;

}

ORACLE in 字串,字串,字串

因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...

字串物件python int 字串 字串物件

最近研究字串物件,稍微總結一下,以後繼續補充 如果我們須要把python的字串物件轉換為數整物件,我們須要用到int方法。比如 ainfo 222 print int ainfo 輸出的結果是222。然後我們檢視下ainfo在現的型別,通過type方法檢視下,發現是 而如果ainfo fefew22...