Partage de technologie

La 14e compétition provinciale de la Coupe Lanqiao CB Groupe G Question [Abréviation de sous-chaîne] Solution (AC)

2024-07-06

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

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

Idée générale du sujet

chaîne donnée ssm,personnage un, un b, un cun,b, demande à la chaîne ssm Combien y en a-t-il dans aaun début bbb La sous-chaîne de fin.

Idées de résolution de problèmes

20pts

Utilisez une double boucle pour énumérer le point d'extrémité gauche et le point d'extrémité droit afin de déterminer s'il est aaun début bbb Si la chaîne à la fin est la réponse, ajoutez-en une.

100pts

La plage de données est large et nous devons contrôler la complexité temporelle au sein de O ( n log ⁡ n ) O(nlog n)O(nlogn) Dans.

Fayi

nous devons tout trouver aaun début bbb fin de la chaîne, alors on peut pour chaque caractère bbb, va voir bbb Combien y en a-t-il sur le côté gauche de aaun, alors ces un … b apoints bunb C'est une chaîne légale.Comptez combien de caractères se trouvent sur le côté gauche d'une certaine position aaun, on peut utilisersomme de préfixeL'algorithme est maintenu.

Méthode 2

Nous pouvons parcourir toute la chaîne, pour chaque aaun Combien y a-t-il de caractères à droite du personnage bbb, alors ces a … ba points bunb Ce sont toutes des chaînes légales.Compter les caractères après une certaine position bbb Le numéro peut être utilisésomme de suffixeL'algorithme est maintenu.

#include