A El número de posiciones
1. El significado de los problemas
Dado n 1 an de las colas individuales, donde una gran cantidad de personas delante de una persona, a más tardar b persona, la persona le preguntó cuántos lugares alternativos.
2. solución problema
se cumplen dos condiciones, una persona en frente de mayor que o igual, a la posición seleccionada hasta un total de a + 1 siguiente na a, b o menos detrás de la persona, a la posición seleccionada de la parte posterior hasta un total de b + 1 º, la toma de intersección.
3. Código
1 #include <bits / STDC ++ h.> 2 usando espacio de nombres std; 3 int n, a, b; 4 int main () { 5 cin >> n >> a >> b; 6 si (na> 1 + b) 7 cout << 1 + b << endl; 8 persona 9 tribunal << na << endl; 10 11 de retorno 0 ; 12 }
B permutaciones
1. El significado de los problemas
k n bits dada, pueden romperse en cualquier orden entre los números, lo que permite un cero, de modo que la mínima diferencia entre los valores máximo y mínimo en la misma disposición regular.
2. solución problema
Next_permutation plena función de permutación, con una matriz bidimensional de cada número de memoria que, cada número almacenado matriz unidimensional, Ans un mantenimiento mínimo.
3. Código
<. bits / STDC ++ h> #include #define inf 0x3f3f3f3f usando espacio de nombres std; int n, k; int a [ 10 ] [ 10 ]; int b [ 10 ] [ 10 ]; int c [ 10 ]; int d [] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }; int ans = inf; void f ( int n) { intsuma = 0 ; para ( int i = 8 ; i> = 0 ; i-- ) { suma * = 10 ; suma + = b [n] [i]; } C [n] = suma; volver ; } Int main () { cin >> n >> k; Char CH; para ( int i = 0 ; i <n; i ++ ) { para ( int j = 0 ; j <k; j ++ ) { cin >>cH; a [i] [j] = CH- ' 0 ' ; } } Int mmin = inf; mientras que ( 1 ) { para ( int i = 0 ; i <n; i ++ ) para ( int j = 0 ; j <k; j ++ ) b [i] [j] = a [i] [d [j] - 1 ]; para ( int i = 0 ; i <n; i ++ ) f (i); sort (c, c + n); Mmín= min (mmin, c [n- 1 ] -c [ 0 ]); si (next_permutation (d, d +! k)) descanso ; } Cout << Mmín << endl; volver 0 ; }
D El bloqueo de mayúsculas
1. El significado de los problemas
Dada una palabra, si se capitalizan todas las letras o sólo la primera letra es minúscula, toda la capitalización de la palabra de salida después de la inversión, de lo contrario, de acuerdo con la entrada original a la salida de la palabra.
2. solución problema
No haga caso de la primera letra en minúsculas letras si esto último, entonces la palabra es salida o salida invertida.
3. Código
1 #include <bits / STDC ++ h.> 2 usando espacio de nombres std; 3 cuerdas s; 4 int main () { 5 cin >> s; 6 int flag = 1 ; 7 para ( int i = 1 ; i <s.size (); i ++ ) { 8 si (s [i]> ' Z ' ) { 9 bandera = 0 ; 10 descanso ; 11 } 12 } 13 Si (flag) { 14 para ( int i = 0 ; i <s.size (); i ++ ) { 15 si (s [i] < 95 ) 16 printf ( " % c " , s [i] + 32 ); 17 más 18 printf ( " % c " , s [i] - 32 ); 19 } 20 21 } 22 más { 23 para ( int i = 0 ; i <s.size (); i ++ ) 24 printf (" % C " , s [i]); 25 } 26 27 de retorno 0 ; 28 }
E contrarios atraen
1. El significado de los problemas
Dado el número n, si los dos números se añaden bits 0, que puedan ser emparejados, pregunte a un total de unos pocos pares.
2. solución problema
Con un mapa almacenado, 0 sentencia especial.
3. Código
1 #include <. Bits / STDC ++ h> 2 #define ll largo largo 3 usando espacio de nombres std; 4 mp < int , int > pf; 5 int main () { 6 int n; 7 cin >> n; 8 para ( int i = 0 ; i <n; i ++ ) { 9 int a; 10 cin >> A; 11 mp [a] ++ ; 12 } 13 suma ll = mp [ 0 ] * (mp [0 ] - 1. ) / 2 ; // número de combinaciones de CN2 abierto 14 para ( int I = . 1 ; I <= 10 ; i ++) // Rango de datos -10 <= Ti <= 10 15 SUM = MP + [I] * MP [- I]; 16 . 17 COUT SUM << << endl; 18 es . 19 de retorno 0 ; 20 es }
F El mundo es un teatro
1. El significado de los problemas
Seleccionar las personas en tm n niños y niñas, en los que hay al menos cuatro niños y una niña, y le preguntó cuántas opciones hay maneras.
2. solución problema
Una combinación del número de cuestiones.
3. Código
1 #include <. Bits / STDC ++ h> 2 #define ll largo largo 3 usando espacio de nombres std; 4 ll c (ll n, ll m) { 5 ll fac = 1 ; 6 para ( int i = 1 ; i <= m; i ++ ) 7 fac = fac * (n-m + i) / i; 8 retorno fac; 9 } 10 ll n, m, t, ans; 11 int main () { 12 cin >> n >> m >> t; 13 para (ll i = 4 ; i <= n; i ++ ) 14 si (i <t && t-i <= m) 15 ans + = c (n, i) * c (m, t- i); 16 17 tribunal << ans << endl; 18 19 de retorno 0 ; 20 }