3 条题解

  • 1
    @ 2025-2-15 14:10:56
    // https://dashoj.com/p/74
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    	string text, pattren;
    	cin >> text >> pattren;
    	string str = pattren + '#' + text;
    	vector<int> pi(str.size(), 0);
    	for (int i = 1; i < str.size(); i++) {
    		int len = pi[i - 1];
    		while (len != 0 && str[i] != str[len]) len = pi[len - 1];
    		if (str[i] == str[len]) pi[i] = len + 1;
    	}
    	sort(pi.begin(), pi.end(), [](int a, int b) {
    		return a > b;
    	});
    	int cnt = 0, max = pi[0];
    	for (int i : pi) if (i == max) cnt++; else break;
    	cout << cnt << endl;
    	return 0;
    }
    

    信息

    ID
    74
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    516
    已通过
    64
    上传者