Título: Déle una cadena que contenga solo 'R', 'G', 'B', encuentre cuántas longitudes son 3 y cada carácter no es igual, y el primer segundo y segundo tercer intervalo Subsecuencias de diferentes longitudes.
Solución del problema: Cuente cuántos caracteres tiene cada uno, calcule el número de las dos subsecuencias diferentes y luego reste el número de longitudes iguales
Código:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <stack> 7 #include <queue> 8 #include <vector> 9 # incluir <map> 10 #include < set > 11 #include <unordered_set> 12 #include <unordered_map> 13 #define ll largo largo 14 #define fi first 15 #define se second 16 #define pb push_back 17 #define me memset 18 const int N = 1e6 + 10 ; 19 const int mod = 1e9 + 7 ; 20 usando el espacio de nombres estándar; 21 typedef pair < int , int > PII; 22 pares typedef < largo , largo > PLL; 23 24 int n; 25 ll cnt = 0 ; 26 ll r, g, b; 27 cuerdas s; 28 29 int main () { 30 ios :: sync_with_stdio ( falso ); 31 cin >> n >> s; 32 para ( int i = 0 ; i <n; ++ i) { 33 para ( int j = i + 1 ; j <n; ++ j) { 34 int k = j + (j- i); 35 si (k> n- 1 ) continúa ; 36 if (s [i]! = S [j] && s [j]! = S [k] && s [i]! = S [k]) cnt ++ ; 37 } 38 } 39 40 para ( int i =0 ; i <n; ++ i) { 41 if (s [i] == ' R ' ) r ++ ; 42 más if (s [i] == ' G ' ) g ++ ; 43 más b ++ ; 44 } 45 printf ( " % lld \ n " , r * g * b- cnt); 46 47 48 retorno 0 ; 49 }