Niuke Xiaobaiyue 21-Eu te amo (número de ocorrências de subsequência descontínua na cadeia, DP)

 

 

Link: https://ac.nowcoder.com/acm/contest/3947/I
Fonte: Niuke.com

Prazo: C / C ++ 1 segundo, 2 segundos línguas outras
restrições de espaço: C / C ++ 131072K, outras línguas 262144K
64 bits do IO do Formato: LLD%

Descrição do título

Neste momento, não nos conhecemos e estamos dispostos a passar meses e meses.
Quantas vezes de amor uma carta de amor contém?
Eu amo você, não apenas pelo que você é, mas pelo que sou quando estou com você.

Digite a descrição:

Uma linha: uma carta de amor de vários caracteres (sem distinção entre maiúsculas e minúsculas).
A carta de amor não excederá 684.594 caracteres (maiúsculas e minúsculas).

Descrição da saída:

Uma linha: contém um número inteiro, ou seja, o número de vezes que ilovey aparece como uma subsequência em uma carta de amor.
Como a resposta pode ser grande, envie o valor após o módulo 20010905.

 

Entrada

IloveyouNão só para o que você está, mas quando estou com você

Saída

2864

 

 

A explicação se refere a um blog que eu escrevi antes: https://www.cnblogs.com/jiamian/p/12210899.html

 

1 #include <bits / stdc ++. H>
 2 typedef long  long LL;
3  const  int INF = 0x3f3f3f3f ;
4  const  duplo eps = 1-8 ;
5  const  int mod = 1e8;
6  const  int maxn = 2e5 + 10 ;
7  usando o  namespace std;
8  const  int MOD = 20010905 ;
9  
10  cadeia Str1;
11  string str2 = "iloveyou " ;
 12 LL dp [ 10 ];
 13  
14  int main ()
 15  {
 16      #ifdef DEBUG
 17      freopen ( " sample.txt " , " r " , stdin);
 18      #endif 
19      
20      while (cin >> str1)
 21      {
 22          memset (dp, 0 , sizeof (dp));
 23          para ( int i = 0 ; i <str1.size (); i ++ )
 24         {
 25              str1 [i] = tolower (str1 [i]);
26              for ( int j = str2.size () - 1 ; j> = 0 ; j-- )
 27                  dp [j] = (dp [j] + (str1 [i] == str2 [j]) * (j == 0 ? 1 : dp [j- 1 ]))% MOD;
28          }
 29          cout << dp [str2.size () - 1 ] << endl ;;
30      }
 31      
32      retorno  0 ;
33 }

 

 

 

-

Acho que você gosta

Origin www.cnblogs.com/jiamian/p/12689059.html
Recomendado
Clasificación