Atcoderグランドコンテスト039B(思考、BFS)

#define HAVE_STRUCT_TIMESPEC
する#include <ビット/ STDC ++ H>
使用して名前空間std。
int型COL [207]、S [207]、N。
チャーSS [207] [207]。
INT BFS(INT X){
int型、L = 0、R = 0。
以下のために(INT i = 1; iが<= N; iは++)
COLを[I] = 0;
S [++ R] = xと;
COL [X] = 1。
一方、(L <R){
X = Sで[+ +1]。
以下のために(INT i = 1; iが<= N; iは++)
IF(SS [X] [i]が- '0'){
IF(COL [I] == 0){
COL [i]は= COL [X] + 1;
S [++ R] = I。
}
そうであれば(ABS(COL [I] -col [X])= 1!)
リターン-1。
}
}
戻りCOLの[S [R]。
}
int型のmain(){
IOS :: sync_with_stdio(偽)。
cin.tie(NULL)。
cout.tie(NULL)。
int型ANS = -1;
cinを>> N;
(。;; I <= N-I ++はint型I = 1)のための
CIN >> SS [I]さんが+1;
のため(int型I = 1; I <= N;私は++)//列挙開始
ANS =最大(ANS、BFS(I)) ; //は最長の最短の長さを見つける
のprintf( "%のD"、ANSを);
}

おすすめ

転載: www.cnblogs.com/ldudxy/p/11627240.html