vijosP1567子串計數

2022-05-12 01:15:51 字數 1264 閱讀 1739

描述

現在有乙個字串,請求出這個字串不相同的子串個數。

yxy現在不會做,請你來幫忙……

n<=20w

題解:字尾陣列裸題,其實我在練習模板寫對了沒

**:

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include

10 #include11 #include

12#define inf 1000000000

13#define maxn 200000+5

14#define maxm 500+100

15#define eps 1e-10

16#define ll long long

17#define pa pair18

#define for0(i,n) for(int i=0;i<=(n);i++)

19#define for1(i,n) for(int i=1;i<=(n);i++)

20#define for2(i,x,y) for(int i=(x);i<=(y);i++)

21#define for3(i,x,y) for(int i=(x);i>=(y);i--)

22#define mod 1000000007

23using

namespace

std;

24 inline int

read()

2528

while(ch>='

0'&&ch<='9')

29return x*f;30}

31int

n,c[maxn],sa[maxn],rk[maxn],h[maxn],t[maxn],t2[maxn];

32char

s[maxn];

33void build(int

m)3455}

56void

calch()

5762

intmain()

6372 s[n]='';

73 build(128

);74

calch();

75 ll ans=0

;76 for1(i,n)ans+=(ll)(n-sa[i]-h[i]);

77 cout

78return0;

79 }

view code

這次的模板比上次好多了。。。

37 00 vijos p1425 子串清除

p1425子串清除accepted 標籤 顯示標籤 描述 我們定義字串a是字串b的子串當且僅當我們能在b串中找到a串。現在給你乙個字串a,和另外乙個字串b,要你每次從b串中從左至右找第乙個a串,並從b串中刪除它,直到a串不為b串的子串,問你需要進行幾次刪除操作。格式 輸入格式 輸入檔案共2行,第一行...

正式賽1003 子串計數

給出兩個字串 s1 和 s2 在 i 2 時 有 si si 2 si 1 其中 表示將字串首尾相連,求 sn 中有多少個子串是 111 假設 s1 01 s2 1 則 s3 011 s4 1011 s5 0111011 字串 s 的子串定義為 刪去 s 字首與字尾若干字元後得到的新字串。第一行乙個...

計數二進位制子串

題目描述 給定乙個字串s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01 ...