牛客 13253 子串

2021-10-01 19:09:06 字數 792 閱讀 2959

給出乙個正整數n,我們把1…n在k進製下的表示連起來記為s(n,k),例如s(16,16)=123456789abcdef10, s(5,2)=11011100101。現在對於給定的n和字串t,我們想知道是否存在乙個k(2 ≤ k ≤ 16),使得t是s(n,k)的子串。

第一行乙個整數n(1 ≤ n ≤ 50,000)。

第二行乙個字串t(長度 ≤ 1,000,000)

"yes"表示存在滿足條件的k,否則輸出"no"
8

01112

yes
先用暴力求出s,然後用kmp進行字串匹配。

#include#include#includeusing namespace std;

typedef unsigned long long ull;

const ull b=100000007;

string t;

int next[1000005];

int n;

bool kmp(string a,string b)

string numtostring(int a,int b)

return s;

}void makenext()

} if(flag)

printf("yes\n");

else

printf("no\n");

return 0;

}

KMP 牛客 NC13253 子串

題目描述 給出乙個正整數n,我們把1 n在k進製下的表示連起來記為s n,k 例如s 16,16 123456789abcdef10,s 5,2 11011100101。現在對於給定的n和字串t,我們想知道是否存在乙個k 2 k 16 使得t是s n,k 的子串。輸入描述 第一行乙個整數n 1 n ...

牛客網 子串

解題思路 模擬出每乙個進製形成的字串然後kmp就可以了!好像用string直接find也行 include include include include include includeusing namespace std const int maxn 1000005 char t maxn ch...

牛客題霸 最長公共子串

題目描述 給定兩個字串str1和str2,輸出兩個字串的最長公共子串,如果最長公共子串為空,輸出 1。示例1輸入 1ab2345cd 12345ef 返回值 2345 python longest common substring param str1 string字串 the string par...