羅区---- P1162カラーTiantu

https://www.luogu.org/problem/P1162

デジタル0 0からなるマトリックス、閉じたループを有する任意の形状、デジタル閉ループ1は、場合にのみ、筐体左側へと右下構成されている。4 4つの方向。今、すべてのスペースを閉じた円内に充填されている必要があり2 、例えば2:6 \ 6タイムズ6 × マトリックス6(N-6 = N- = 6)、及び着色を着色する前の正方形は、以下:

0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1

入力形式

整数の各検査ライン(1 \ N-LE \ル30)N- N- 1 N- 3 0

次いで、N- 、N行によって0 0と1 の1S N- \タイムズN- N- × N-正方行列。

正方形内のみ黒丸、少なくとも円0 0

//はUに感謝黄は、この質問は同じデータとデータ形式ではないことを指摘したドリンク。修正(入力フォーマット)

出力フォーマット

私たちは、デジタル満たされている2 完全節骨2。

サンプル入力と出力

入力#1
6 
0 0 0 0 0 0 
0 0 1 1 1 1 
0 1 1 0 0 1 
1 1 0 0 0 1 
1 0 0 0 0 1 
1 1 1 1 1 1
出力#1
0 0 0 0 0 0 
0 0 1 1 1 1 
0 1 1 2 2 1 
1 1 2 2 2 1 
1 2 2 2 2 1 
1 1 1 1 1 1

説明/ヒント

1 \ n \ル30 1 N 3 0

ソリューション:ダイレクト円0貧困層の需要を求めて、私たちは0マークが完全にループから出てくる、ループ0の外にマークすることができ、残りは円0です。

各垂直方向と水平方向の境界のために0からスタート

ACコード:

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
int型 ARR [ 33 ] [ 33 ]。
構造体STU {
     int型X、Y。
}。
int型のn;
int型の D [ 4 ] [ 2 ] = { 1001、 - 100、 - 1 }。
ボイド BFS(int型のx、int型のY){ 
    キュー <STU> QUE。
    ARR [X] [Y] = 3; 
    que.push({X、Y})。
    一方、(que.size()){ 
        STU S = que.front()。
        que.pop(); 
        以下のためにint型私= 0 ; I < 4 ; iが++ ){
             int型 DX = s.x + D [i]が[ 0 ]。
            int型 DY = s.y + D [i]を[ 1 ]。
            もし(DX> = 1 DY &&> = 1 && DX <= N && DY <= N && ARR [DX] [DY] == 0 ){ 
                ARR [DX] [DY] = 3 ; 
                que.push({DX、DY})。
            } 
        }  
    }
}
INT メイン(){ 
    CIN >> N。
    以下のためにint型 i = 1 ; iが<= N; I ++ のためのINT J = 1 ; J <= N; J ++ 
            のscanf(" %dの"、およびARR [I] [J])。
    int型 i = 1 ; iが<= N; iが++ ){
         場合(ARR [I] [ 1 ] == 0)BFS(I、1 )。
        もし([I] [N] == ARR 0 BFS(I、N))。
        もし(ARR [ 1 ] [I] ==0)BFS(1 、I)。
        もし(ARR [n]は[I] == 0 )BFS(N、I)。
    } 
    のためのint型 i = 1 ; iが<= N; iが++ ){
         ためINT J = 1 ; J <= N; J ++ 場合(ARR [I] [J] == 3)COUT << 0 << "  " ;
            それ以外の 場合(ARR [I] [J] == 0)coutの<< 2 << "  "を他の coutの<< 1 << " "; 
        coutの << てendl; 
    } 
    戻り 0 
}

 私は、被写体の同じ種類をしたい:https://www.luogu.org/problem/P1506

 

おすすめ

転載: www.cnblogs.com/Accepting/p/11566602.html