ZJNU 1333 - シニア2番目の質問blocks--

すべてのは、再び全体像のBFSを実行した後、我々は裁判官を配置する必要がありますので、明らかに非現実的です

そして、理由は3点のみ、無黒と白

あなたは互いに素セットの最適化を使用することができますので、

それは4つのグループの周囲の状況と判断された作品を追加

発生する状況と答え関係注間の差別

1  / * 
2  書かによりStelaYuri
 3  * / 
4の#include <stdio.hに>
 5の#include <memory.h>
 6  INT N、M、DX [ 4 ] = { 10、 - 10 }、DY [ 4 ] = { 010、 - 1 }、GP [ 250010 ]。
7  チャー CM [ 505 ] [ 505 ]。
8  INT findp(INT P){
 9      リターン?P == GP [P] P:(GP [P] =findp(GP [P]));
10  }
 11  int型プライム(int型のx、int型のY){
 12      リターン X> = 0 && Y> = 0 && X <N && Y < N。
13  }
 14  INT メイン(){
 15      INT I、J、X、Y、XX、YY、ANS = 0 、G、D1、D2。
16      チャーC。
17      のmemset(CM、' 'はsizeof CM);
18 のためには、式(I = 0、I < 250000 ; I ++ 19          GP [I] =     私;
20      のscanf(" %D%D "、&​​N、&M)。
21      のために(私は= 0 ; I <M、I ++ ){
 22          のscanf(" %* C%C%D%D "、&​​C、およびX&Y)。
23の          ANS ++ ;
24          のための(G = J = 0 ; J < 4 ; J ++ ){
 25              XX = X- 1 + DX [J]。
26              YY = Y- 1 + DY [J]。
27              であれば(プライム(XX、YY)&&センチ[XX] [YY] == {C)
 28                 findp = D1(GP [(X- 1)* N +(Y- 1 )]);
 29                  D2 = findp(GP [XX * N + YY]);
 30                  IF(!G){ // 周囲4箇所さらに場合直接のセットを持つものを組み合わせると回答のセット低減することができる、検出されない
31は                      G =を1。;
 32                      IF(D1 =!D2){
 33が                         IF(D1 < D2)
 34である                              GP [D2 = D1;
 35                          
36                              GP [D1 ] = D2;
 37                      }
 38で                      ans-- ;
 39                 }
 40                   { // 同じ基が発見された場合に位置を囲む4つの、二つを合わせ、回答グループのための必要性が減少した点の異なるセット場合にのみ
41である                     IF(D1!= D2){
 42が                         IF(D1 < D2)
 43である                              GP [D2] = ; D1
 44は                         他の
45                              GP [D1] = ; D2
 46は                          ans-- ;
 47                      }
 48                  }
 49              }
 50          }
 51である          [X- CM&LT 1 ] [Y- 1。 ] = C;
 52であります         printf(" %dの\ n " 、ANS)。
53      }
 54      
55      戻り 0 ;
56 }

 

おすすめ

転載: www.cnblogs.com/stelayuri/p/12234942.html