牛客 Barn Echoes (擴充套件KMP)

2021-09-26 16:11:44 字數 875 閱讀 6845

給出兩個字串,求乙個字串的字首與另乙個字串的字尾最長重疊長度

採用擴充套件kmp可以輕鬆解決此題

#include

#include

#include

#include

using

namespace std;

string str1,str2,s1,s2;

//設從i位置開始的s的字尾串為s0i

void

z_function

(string s,

int n,

int z)

//擴充套件kmp(z函式),求s與s0i的最長公共字首的長度}}

intmain()

,z2[

200]=;

cin>>str1>>str2;

int str1_len=str1.

size()

,str2_len = str2.

size()

; s1=str1+str2;

s2 = str2 +str1;

z_function

(s1,s1.

size()

,z1)

;int len1=s1.

size()

,ans=0;

for(

int i=str1_len ;iz_function

(s2,s2.

size()

,z2)

;int len2 = len1;

for(

int i=str2_len ;iprintf

("%d\n"

,ans)

;return0;

}

小K的疑惑 牛客

bob有 n 1 leq n leq10000 個點的樹,每條邊有乙個邊權 d 0 leq d leq 233 現在定義 dis i,j 代表第 i 個點到第 j 個點的距離模2。問有多少 i,j,k 滿足 dis i,j dis i,k dis j,k 首先,一棵樹中不存在 i,j,k 使得 di...

牛客網 最小的k個數

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,解法1 利用最大堆,o nlogk vectorgetleastnumbers solution vectorinput,int k vectorheap input input....

牛客網 第K大元素

1.查詢第k大的元素 給定乙個無序的整型陣列a n 陣列大小大於等於3,允許有值相同的元素 請設計演算法找到該陣列排序後第三大的元素值並輸出.乙個非空的整數陣列 至少有3個元素,可正可負 第三大的元素值示例1 複製 1,2,3,4,5 複製 3示例2 複製 1,1,2,2,3 複製 2思路 將所有的...