Codeforces Ronda # 630 (Div. 2)

enlaces a los temas: https://codeforces.com/contest/1332

A. Caminar Ejercicio

Repetidamente mover las dos direcciones compensados ​​por el número de pasos, el número de pasos y ver si hay más de o igual a una dirección de longitud del número restante de pasos.

#include <bits / STDC ++ H.>
 el uso de  espacio de nombres STD; 

void Resolver () 
{ 
    int A, B, C, D; 
    CIN >> >> B >> A >> C D;
     int X, Y, X1, X2, Y1, Y2; 
    CIN >> >> X Y Y1 >> >> >> X1 >> X2 Y2; 
    
    int L1 = max (X-X1, X2-X), L2 = max (Y2-Y, Y Y1) ;
     IF (L1> 0 ) { // si la izquierda o derecha de distancia 
        int mi el = min (A, B); // moverse compensación 
        A- = mi el, B- = mi el;
         IF (A> 0 && A <= X-X1) A = 0 ;
         SI (B>0&& b <= x2-x) b = 0 ; 
    } 

    Si (L2> 0 ) {
         int mi = min (c, d); 
        c - = mi, d- = mi;
        si (c> 0 && c <= y-y1) c = 0 ;
        si (d> 0 && d <= y2-y) d = 0 ; 
    } 

    Si (a || b || c || d) cout << " No \ n " ;
    otro tribunal << " Sí \ n " ; 
} 

Int main () 
{ 
    int t; cin >> t;
    ) 
        Resolver (); 
    volver  0 ; 
}
Ver código

B. Compuesto para colorear

Sólo menos de 1.000 factor primordial cuadrado 11, el mismo color de tinte a un factor primordial mínimo.

#include <bits / STDC ++ h.>
 usando  espacio de nombres std; 

anulará solve () 
{ 
    int n; cin >> n;
    int res [n] = {}; 

    int color = 0 ; 
    mapa < int , int > m; 
    
    para ( int i = 0 ; i <n; i ++ ) {
         int t; cin >> t;
        para ( int j = 2 ; j <= t; j ++ ) {
             si (t% j == 0 ) {
                 si(m [J]) RES [I] = m [J]; // si esto ocurre antes de que el factor de calidad, el número del mismo color para teñir 
                los demás RES [I] = m [J] Color = ++; // de otro modo, un nuevo color asignado al factor de calidad 
                PAUSA ; 
            } 
        } 
    } 

    COUT << de color << " \ n- " ;
     para ( int I = 0 ; I <n-; I ++) I COUT << << " \ n- " [I N- == 1. ]; 
} 

int main () 
{ 
    int T; CIN >> T;
     el tiempo (T- ) 
        Resolver (); 
    retorno  0 ; 
}
Ver código

C. K-Complete Palabra

Cada teniendo ambos extremos del carácter y extremos interiores de los personajes de la época, que han de ser los mismos, que reemplazan la mayoría de que en él.

#include <bits / STDC ++ h.>
 usando  espacio de nombres std; 
 
vacío solve () 
{ 
    int n, k; n cin >> >> k;
    string s; cin >> S; 

    int ans = 0 ;
    bool vis [n] = {}; 

    para ( int i = 0 ; i <n; i ++ ) 
    { 
        si (vis [i]) siguen ; 
        vector < Char > v; 

        para ( int j = i; j <n; j + = k)
             si (!  vis [j]) {
                v.push_back (s [j]);
                vis [j] = verdadero ; 
            } 
        Para ( int j = ni- 1 ; j> = 0 ; j- = k)
             si (! Vis [j]) { 
                v.push_back (s [j]); 
                vis [j] = verdadero ; 
            } 
            
        Int cnt [ 26 ] = {};
        para ( Char c: v) cnt [c- ' un ' ] ++ ;
        int mx = * max_element (cnt, cnt + 26  );
        ans + = int (v.size ()) - mx; 
    } 

    Cout << ans << " \ n " ; 
} 
 
Int main () 
{ 
    int t; cin >> t;
    mientras que (t-- ) 
        resolver (); 
    volver  0 ; 
}
Ver código

D. Caminar sobre Matrix

El código dp original a causa de la búsqueda de valor máximo actual y descarte valor inferior harán una respuesta mayor, puede construir las mismas ideas.

#include <bits / STDC ++ h.>
 usando  espacio de nombres std;
const  int inf = 1 << 17 ;
int main () 
{ 
    int k; cin >> k; 
    cout << " 2 3 \ n " ; 
    cout << (inf + k) << '  ' << k << '  ' << inf << " \ n " ; 
    cout << inf << '  ' << (inf + k) << '  ' << k;
    volver  0 ; 
}
Ver código

 

Supongo que te gusta

Origin www.cnblogs.com/Kanoon/p/12609890.html
Recomendado
Clasificación