美團CODEM 字串

2021-08-03 06:12:58 字數 1025 閱讀 2711

時間限制:1秒

空間限制:32768k

給出乙個正整數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解法:直接暴力拆分然後做乙個kmp,但是要注意用下標為1的kmp在串是空串的時候要gg.所以選擇下標為0的kmp的寫法。

#include 

using

namespace

std;

const

int maxn = 3000010;

char s1[maxn], s2[maxn];

string s;

int fail[maxn];

int n,len1,len2;

int kmp()

else

if(j==len2) return

1; }

return0;}

int main()

else j=fail[j];

}int ans = 0;

for(int jz = 2; jz<=16; jz++)

for(int j=cnt-1; j>=0; j--)

else}}

ans = max(ans, kmp());

if(ans > 0) break;

}if(ans > 0) puts("yes");

else

puts("no");

return

0;}

美團codeM預賽B 子串

子串時間限制 1秒 空間限制 32768k 給出乙個正整數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 的子串。輸...

美團codeM預賽A 倒水

倒水 時間限制 1秒 空間限制 32768k 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。注意 一杯溫...

codeM 美團b輪 E 子串

時間限制 1秒 空間限制 32768k 給出乙個正整數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 的子串。輸入描...