Concurso ICPC Sureste de Europa 2019

B (DP)

Lo más importante es el impacto de la transición de estado en el mismo escenario,

Al igual que por qué 01 optimización de mochila necesita flashback, pero esta pregunta no es solo flashback, sino también para guardar la transferencia en esta etapa y finalmente guardar

Para evitar la influencia mutua en la misma etapa de la transferencia.

En cuanto a la clasificación, por supuesto, espero que cuanta más experiencia adicional quiera actualizar, mejor.

#include <bits / stdc ++. h>
 #define el registro RE
 #define P pair <int, int>
 #define PP pair <P, P>
 #define ll largo
 usando el  espacio de nombres std; 

int n, x, y; 
ll f [ 501 ] [ 501 ], ff [ 501 ] [ 501 ]; 
PP a [ 501 ]; 

bool cmp (PP a, PP b) 
{ 
    return a.first.first < b.first.first; 
} 

int main () 
{ 
    scanf ( " % d% d% d " , & n, & x, y  y);
    memset (f,0x3f3f3f3f , sizeof f); 
    memset (ff, 0x3f3f3f3f , sizeof ff); 
    ll bandera = f [ 0 ] [ 0 ]; 
    f [ 0 ] [ 0 ] = 0 ;
    para (RE int i = 1 ; i <= n; ++ i) 
        scanf ( " % d% d% d% d " , & a [i] .first.first, y a [i] .first.second, y a [ i] .second.first, y a [i] .second.second); 
    sort (a + 1 , a + 1 + n, cmp);
    para  (int i = 1 ; i <= n; ++ i) 
    { 
        para ( int c = 0 ; c <= x; ++ c)
             para ( int d = 0 ; d <= y; ++ d) 
                ff [c] [d] = f [c] [ re];
        for ( int c = x; c> = 0 ; - c)
             for ( int d = y; d> = 0 ; - d) 
            { 
                if (f [c] [d] == flag) continuar ;
                Si(c! =x) 
                { 
                    int nc = c + a [i] .first.first;
                    int nd = d;
                    si (nc> x) nd + = nc - x, nc = x; 
                    nd = min (nd, y); 
                    ff [nc] [nd] = min (ff [nc] [nd], f [c] [d] + a [i] .primero.segundo); 
                } 
                int nd = min (d + a [i] .second.first, y); 
                ff [c] [nd] = min (ff [c] [nd], f [c] [d] + a [i] .segundo.segundo); 
            } 
        para ( int c = 0 ; c <= x; ++c)
             para ( int d = 0 ; d <= y; ++ d) 
                f [c] [d] = ff [c] [d]; 
    } 
    if (f [x] [y] == bandera) f [x] [y] = - 1 ; 
    printf ( " % lld " , f [x] [y]);
    devuelve  0 ; 
}

D (terminado)

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

char s [ 1000005 ];
int a [ 26 ], len = 1 , n; 
vector < int > ve; 

int main () 
{ 
    scanf ( " % s " , s + 1 );
    para ( int & i = len; s [i]; ++ i) ++ a [s [i] - ' a ' ];
    --len; len >> = 1 ;
    para ( int i = 0 ; i < 26; ++ i)
         if (a [i]> = len) ve.emplace_back (i), ++ n;
        más  si (a [i]) ++ n;
    if (ve.size ()> 1 || (ve.size () == 1 && n < 3 )) 
    { 
        put ( " NO " );
        devuelve  0 ; 
    } 
    pone ( " " ); 
    if (! ve.empty ()) 
    { 
        a [ve [ 0 ]] - = len;
        para ( int i =1 ; i <= len; ++ i) printf ( " % c " , ve [ 0 ] + ' a ' );
        para ( int i = 0 ; i < 26 ; ++ i)
             if (a [i] && i! = ve [ 0 ]) 
            {
                 --a [i]; printf ( " % c " , ' a ' + i);
                romper ; 
            } 
        while (a [ve [ 0 ]] -) printf ( " % c " , ve [ 0] + ' a ' ); 
    } 
    para ( int i = 0 ; i < 26 ; ++ i)
         while (a [i]> 0 ) printf ( " % c " , i + ' a ' ), - a [i];    
    devuelve  0 ; 
}

F (poda de árboles, nim)

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

const  int N = 1e5 + 5 ; 

vector < int > vec [N];
int n; 

int dfs ( int u, int fa) 
{ 
    int re = 0 ;
    para ( int i = 0 ; i <vec [u] .size (); ++ i) 
         if (vec [u] [i]! = fa) 
            re ^ = 1 + dfs (vec [u] [i], u);
    volver re; 
} 

intmain () 
{ 
        scanf ( " % d " , & n);
        para ( int i = 1 , a, b; i <n; ++ i) 
        { 
            scanf ( " % d% d " , & a, & b); 
            vec [a] .push_back (b); 
            vec [b] .push_back (a); 
        } 
    printf (dfs ( 1 , 0 )? " Alice " : " Bob " );
    devuelve  0 ; 
}    

 

Supongo que te gusta

Origin www.cnblogs.com/2aptx4869/p/12687880.html
Recomendado
Clasificación