CF B. Kind Anton (8 de abril)

------------ Contenido de recuperación iniciado ------------

 

 

 

 Traducir de la siguiente manera

 

 

 (No lo entendí después de verlo durante mucho tiempo) Luego el hermano mayor lo vio de un vistazo (adorar al hermano mayor manualmente);

Solo pensando cuando hay una diferencia entre un bit en la matriz superior y un bit en la matriz inferior, si la diferencia es menor que 0, vea si hay un 1 al frente;

Mayor que 0 para ver si hay -1 al frente;

Practica

Use el mapa para almacenar la posición de la primera aparición de -1 y la posición de la primera aparición de 1, y luego vuelva a recorrerlo para ver si es factible; el método del hermano mayor ↓↓↓↓↓

1 #include <bits / stdc ++. H>
 2  const  int maxn = 1e5 + 50 ;
3  const  int INF = 0x3f3f3f3f ;
4  usando el  espacio de nombres estándar;
5  int a [maxn], b [maxn];
6  int   main () { 
 7      int t;
8      cin >> t;
9      while (t-- ) {
 10          int n;
11          int bandera = 0 , bandera1 = 0 , bandera2 = 0 ;
12          mapa <int , int > m;
13          m [ 1 ] = INF, m [- 1 ] = INF;
14          cin >> n;
15          para ( int i = 1 ; i <= n; i ++ )
 16              cin >> a [i];
17          para ( int i = 1 ; i <= n; i ++ )
 18              cin >> b [i];
19          para ( int i = 1 ; i <= n; i ++ ) {
 20              if (a [i] == 1 &&!flag1) {// Grabar 1 posición de primera aparición
 21                  flag1 = 1 ;
 22                  m [ 1 ] = i;
 23              }
 24              if (a [i] == - 1 &&! flag2) {// Grabar -1 Una posición de ocurrencia
 25                  flag2 = 1 ;
 26                  m [ -1 ] = i;
 27              }
 28          }
 29          para ( int i = 1 ; i <= n; i ++ ) {
 30              if (a [i]> b [i ]) {
 31                  si(m [ -1 ]> = i) {// Compare cuando los elementos superior e inferior son diferentes, ya sea que haya habido la                      bandera 32 anterior
 = 1 ;
 33                      salto ;
 34                  }
 35              }
 36              más  si (a [i] < b [i]) {
 37                  if (m [ 1 ]> = i) {
 38                      flag = 1 ;
 39                      break ;
 40                  }
 41              }
 42          }
 43          if (flag)
 44              cout << "NO " << ' \ n ' ;
 45          más 
46              cout << " " << ' \ n ' ;
 47      }
 48      return  0 ;
 49 }

 

Supongo que te gusta

Origin www.cnblogs.com/ahijing/p/12682890.html
Recomendado
Clasificación