Estadísticas de la cadena (preguntas de mesa

# El significado de los problemas

Mantiene una colección de cadenas, que comprende dos operaciones:
. 1) "LX" Insertar una cadena x
2) "Q X" preguntar cuántas veces al aparezca cadena en el conjunto
n funcionamiento, cada consulta tiene una salida, una sola línea de salida

# Explicaciones

Título de la plantilla
operación gama op
* correspondiente a un solo carácter op
op cadena de caracteres que corresponde

1 #include <bits / STDC ++ h.>
 2  usando  espacio de nombres std;
3  const  int N = 1e5 + 10 ;
4  int n;
5  int trie [N] [ 26 ], cnt [N], tot = 1 ;
6 inline void inserto ( Char * str) {
 7      int p = 1 ;
8      para ( int i = 0 ; str [i]; i ++ ) {
 9          int ch = str [i] - ' un ' ;
10         si (! trie [p] [ch])
 11              trie [p] [ch] = ++ tot;
12          p = trie [p] [ch];
13      }
 14      cnt [p] ++ ;
15  }
 16 inline int consulta ( Char * str) {
 17      int p = 1 ;
18      para ( int i = 0 ; str [i]; i ++ ) {
 19          int ch = str [i] - ' un ' ;
20          si (! Trie [p] [ch])
 21             volver  0 ;
22          p = trie [p] [ch];
23      }
 24      de retorno cnt [p];
25  }
 26  int main () {
 27      cin >> n;
28      , mientras que (n-- ) {
 29          Char op [ 2 ];
30          de char x [N];
31          cin >> >> op x;
32          Si (* op == ' I ' ) {
 33              inserto (x);
34          }
 35          más {
 36             tribunal << consulta (x) << endl;
37          }
 38      }
 39 }

 

 

Supongo que te gusta

Origin www.cnblogs.com/hhyx/p/12528892.html
Recomendado
Clasificación