기술나눔

제14회 란차오 컵 지방 대회 CB 그룹 G 문제 [하위 문자열 약어] 솔루션(AC)

2024-07-06

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

주제에 대한 일반적인 아이디어

주어진 문자열 봄 여름 시즌에스,성격 아, 바, 비,, 질문 문자열 봄 여름 시즌에스 안에는 몇 개나 있나요? 아아 시작 비비 종료 부분 문자열입니다.

문제 해결 아이디어

20포인트

이중 루프를 사용하여 왼쪽 끝점과 오른쪽 끝점을 열거하여 그것이 맞는지 확인합니다. 아아 시작 비비 끝에 있는 문자열이 답이면 하나를 추가하세요.

100포인트

데이터 범위가 크기 때문에 시간 복잡도를 제어해야 합니다. O(n log ⁡ n) O(nlog n)영형(N봐라gN) 이내에.

페이

우리는 모두 찾아야 해 아아 시작 비비 문자열의 끝이면 각 문자에 대해 할 수 있습니다 비비, 가서 봐 비비 왼쪽에 몇개 있어요? 아아, 그러면 이것들은 a … b 점 b 유효한 문자열입니다.특정 위치의 왼쪽에 몇 개의 문자가 있는지 계산 아아, 우리는 사용할 수 있습니다접두사 합계알고리즘은 유지됩니다.

방법 2

우리는 각각에 대해 전체 문자열을 반복할 수 있습니다. 아아 문자 오른쪽에 몇 개의 문자가 있습니까? 비비, 그러면 이것들은 a … 바 도트 b 모두 유효한 문자열입니다.특정 위치 이후의 문자 수 계산 비비 번호를 사용할 수 있습니다.접미사 합계알고리즘은 유지됩니다.

#include