[Coupe Blue Bridge 2018 finales] jouets de tri

 

lien Sujet: http: //oj.ecustacm.cn/problem.php id = 1401?

Plus précisément regarder le code Remarque:

#include <iostream> 
#include <cstring>  
#include <vector> 
#include <file> 
#include <algorithme> en utilisant l' espace de noms std; chaîne matrice [ 15 ]; 
vecteur < omble > chs;
int T, N, M, drapeau; vide InitData () {
     pour ( int i = 0 ; i < 15 ; i ++ ) { 
        matrice [i] .clear (); 
    } 
    Chs.clear (); 
} Int main () { en (~ scanf ( "


 






    
    % d "et T)) {
         pendant que (T-- ) { 
            
            scanf ( " % d% d " , et N, et M); 
            drapeau = true ;
             pour ( int i = 0 ; i <N; i ++ ) { 
                cin >> matrice [i]; 
            } 
            
            // 拿取包含的有哪些字符 
            vecteur < omble > :: iterator il,
             pour ( int i = 0 ; i <N; i ++ ) {
                 pour (int J = 0 ; J <matrice [I] .Size (); J ++ ) { 
                    IT = Rechercher (chs.begin (), chs.end (), Matrix [I] [J]);
                     IF (CHS == IT .end () && flag) { // pas ajouté jusqu'à ce que le caractère précédent et sont vrais (coin supérieur gauche du rectangle composé du premier caractère) 
                        chs.push_back (matrice [I] [J]); // obtenir le premier caractères 
                        
                        // commencer la détermination et l'application d'extension droite commencent
                         // principal détermine si tous les caractères du rectangle de caractères composé 
                        int W, H; 
                        W = H = . 1 ;
                         int I1 = I, J1 = J;
                         // à demande d'extension droite, la détermination de la largeur W 
                        du temps(++ J1 <&& matrice M [I] [J1] == matrice [i] [j]) {W ++ ;} 
                         // demande d'extension vers le bas, pour déterminer la hauteur H 
                        du temps (I1 ++ <N && matrice [I1] [J] == Matrice [I] [J]) {H ++ ;} 
                        
                        // obtenir la hauteur, commencer à chercher s'il y a d' autres caractères dans le rectangle 
                        pour (I = I1; I1 <I + H; I1 ++ ) {
                             pour ( J = J1; J1 <J + W; J1 ++ ) {
                                 SI ! (matrice [I] [J] = matrice [I1] [J1]) { 
                                    flag = false ;
                                     BREAK ; 
                                } 
                            } 
                            SI(! Flag) PAUSE ; 
                        } 
                        
                        IF (En drapeau!) PAUSE ; 
                        
                        // s'il y a une présence du rectangle de recherche externe de ce caractère 
                        pour ( int I2 = 0 ; I2 <N; I2 ++ ) {
                             pour ( int J2 = 0 ; J2 <matrice [I2 ] .size (); J2 ++ ) {
                                 IF ) {((I2> = I && I2 <I + H && J2> && J2 = J <J + W!) // négatif rectangulaire 
                                    IF (matrice [i] [j ] == Matrice [I2] [J2]) { 
                                        flag = false;
                                        briser ; 
                                    } 
                                } 
                            } 
                            Si (drapeau!) De rupture ; 
                        } 
                    } 
                    Si (drapeau!) Pause ; 
                } 
            } 
            
            Si (drapeau) { 
                Cout << " OUI " << endl; 
            } Autre { 
                Cout << " NO " << endl;
            } 
            
            InitData (); 
        } 
    } 
    Retour  0 ; 
}

 

..............

Je suppose que tu aimes

Origine www.cnblogs.com/hello-dummy/p/12590255.html
conseillé
Classement