링크 : https://ac.nowcoder.com/acm/contest/910/D
출처 : 가축 오프 네트워크
농부 존의 농장은 최근 폭풍 때문에 물 극단적 인 두려움의 자신의 소 소식이 악화 사실을 넘쳐난다.
그러나, 자신의 보험 회사는 단지 자신의 농장 "호수"그에게 돈의 합을 지불의 최대 크기를 기반으로합니다.
직사각형 그리드로 표현 농장, N (1≤N≤100) 행과 M (1≤M≤100) 열이있다. 각 격자 그리드는 어느 건조
어느 침수하지만, 정확히 K (1≤K≤N × M) 격자가 침수된다. 하나는 예상 된 바와 같이, "호수"는이
중앙 그리드, 하나의 에지 (단 네 방향이 아닌 대각 의미)을 공유함으로써, 다른 이들에 접속 된 그리드. 어느 한쪽의 중앙 그리드 또는 중앙 그리드와 공유
공유 측에 연결 그리드 하위 그리드는 호수의 일부가 될 것입니다.
링크 :
https://ac.nowcoder.com/acm/contest/910/D
출처 : 가축 오프 네트워크
출처 : 가축 오프 네트워크
설명을 입력합니다 :
첫 번째 라인은 세 개의 정수 N 각각 M, K, N 행의 직사각형 그리드 M 열, K 침수 그리드를 포함한다.
다음 K 열, 각 행은 두 정수 R, C.을 갖는다 이것은 격자의 행 R, 열 C. 잠긴 나타낸다
출력 설명 :
포함 된 출력 격자의 수는 최대 규모의 "호수"
예 1
기입
3 4 5 3 2 2 2 3 1 2 3 1 1
수출
4
qwq이 질문은 줄에 다음 호수 지구, 가장 큰 지역의 각 부분의 크기를 계산하는 아주 간단한 문제이며,
#INCLUDE <STDIO.H> #INCLUDE <iostream> #INCLUDE <stdlib.h> #INCLUDE <알고리즘> 은 USING 공간 STD는, CONST의 INT MAXN는 1E2 + = 2 ; BOOL VIS [MAXN] MAXN]; // 행렬은 상기 함유 격자 침수 여부를 참 침수 INT의 SUM = 0 ; INT ANS = 0 ; 공극 DFS ( INT의 X, int로 Y)를 // [X] [Y]는 침몰 영역의 용지 사이즈의 중심 찾을 힘에 { 만약에이 ( VIS [X] [Y]) // 표지되지 않은 격자를 찾을 { VIS [X] [Y] =false로 ; // 에서도 장소 마커 ++ SUM ; DFS (X + 1. ;, Y) DFS (X - 1. , Y); DFS (X, Y + . 1 ); DFS (X, Y - 1. ); } 반환 ; } INT 의 main () { INT N-, K, m, CIN >> m >> N- K 단계; //이 행렬을 초기화 를위한 ( INT I = . 1 I가 ++; I <= N- ) 에 대해 ( INT= J . 1 ; J <m, J가 ++ ) VIS [I]를 [J]가 = 거짓 ; 그동안 (K-- ) { INT의 X, Y, CIN >> X Y] VIS [X] [Y]가 = 참 ; } 대 ( INT I = 1. ; I <= N-; I는 ++ ) 대 ( INT J = 1. , J <m, J ++ ) { SUM = 0 ; // 도 작게 DFS 각 실제로 약간 최적화 지점 있지만 내가 할 필요가 없었어요 DFS (I, J); ANS = 최대 (SUM, ANS); // 얻을 최대 면적 } COUT << ANS << ENDL; 시스템 ( " 일시 - 정지 " ); 반환 0 ; }