DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

Fujiwara는 커플을 보고 싶어

문제로 돌아가기

해설

두 성별을 서로 바꾸어도 만나는 횟수는 같다. 따라서 s=min⁡(B,G)s=\min(B,G)s=min(B,G)라 하고, 더 적은 쪽의 학생을 배치할 sss개의 칸을 고르자. B=GB=GB=G이면 어느 쪽을 골라도 된다.

칸의 차수를 그 칸과 변을 공유하는 칸의 개수라고 하자. 내부 칸의 차수는 444, 모서리가 아닌 테두리 칸의 차수는 333, 모서리 칸의 차수는 222이다.

격자를 체스판처럼 두 색으로 칠하면 같은 색의 두 칸은 변을 공유하지 않는다. 한 색의 칸에서만 sss칸을 고르면, 선택한 칸의 차수의 합이 그대로 만나는 횟수가 된다. 그러므로 각 색에 대해 차수가 큰 칸부터 sss개 고르고, 두 색 중 차수의 합이 더 큰 쪽을 선택한다. 합이 같으면 어느 쪽을 골라도 된다. 각 색에는 적어도 ⌊N2/2⌋≥s\lfloor N^2/2\rfloor\geq s⌊N2/2⌋≥s개의 칸이 있으므로 항상 가능하다.

정렬할 필요는 없다. 각 색에서 차수가 4,3,24,3,24,3,2인 칸의 개수를 세고, 그 순서대로 몇 칸씩 선택할지 정하면 된다. 선택한 색과 차수별 개수를 구한 뒤 격자를 다시 순회하면서 해당 개수만큼 더 적은 성별을 배치한다. 나머지 칸은 다른 성별로 채운다. s=0s=0s=0인 경우에도 같은 과정으로 격자 전체가 한 성별로 채워진다.

격자를 상수 번 순회하므로 시간 복잡도는 O(N2)O(N^2)O(N2)이다. 한 행씩 만들어 출력하면 공간 복잡도는 O(N)O(N)O(N)이다.

증명

체스판의 한 색만 사용하는 배치가 최적이라는 사실을 증명해야 한다. 임의의 배치에서 더 적은 성별을 배치한 칸을 선택한 칸이라고 하자. 만나는 횟수를 FFF, 선택한 내부 칸의 수를 uuu, 선택한 모서리 칸의 수를 ccc, 양 끝 칸이 모두 선택된 변의 수를 eee라고 하자. 선택한 칸의 차수 합에서 이러한 변을 두 번씩 빼면

F=3s+u−c−2eF=3s+u-c-2eF=

Solution written by GPT6

3s+
u−
c−
2e

를 얻는다. 모든 차수가 444 이하이므로 F≤4sF\leq4sF≤4s도 성립한다.

a=⌈(N−2)2/2⌉a=\lceil(N-2)^2/2\rceila=⌈(N−2)2/2⌉라고 하자. 내부의 (N−2)×(N−2)(N-2)\times(N-2)(N−2)×(N−2) 격자에서 서로 변을 공유하지 않는 칸은 최대 aaa개이다. 행마다 진행 방향을 바꾸어 모든 내부 칸을 지나는 뱀 모양 경로를 생각하면, 이 경로에서 이웃한 칸을 동시에 고를 수 없으므로 aaa개 이하이다. 체스판의 더 큰 색을 고르면 aaa개를 얻을 수 있다. N=2N=2N=2일 때 내부는 비어 있고 a=0a=0a=0이다.

양 끝이 선택된 내부 칸인 변의 수를 eIe_IeI​라고 하자. 각 변에서 끝점 하나씩을 제거하면 적어도 u−eIu-e_Iu−eI​개의 서로 인접하지 않는 내부 칸이 남으므로 u−eI≤au-e_I\leq au−eI​≤a이다. 또한 eI≤ee_I\leq eeI​≤e이므로

F≤3s+a−c−2e+eI≤3s+aF\leq3s+a-c-2e+e_I\leq3s+aF≤3s+a−c−2e+eI​≤3s+a

라는 상한을 얻는다.

먼저 NNN이 짝수인 경우를 보자. 격자를 서로 겹치지 않는 2×22\times22×2 정사각형들로 나눈다. 한 정사각형에 선택한 칸이 xxx개 있으면, 그 정사각형의 네 변 중 서로 다른 성별이 만나는 변은 최대 2min⁡(x,4−x)2\min(x,4-x)2min(x,4−x)개이다. 따라서 같은 성별을 잇는 변은 적어도 ∣4−2x∣|4-2x|∣4−2x∣개이다. 이를 모든 정사각형에 대해 더하면 전체 격자에 같은 성별을 잇는 변이 적어도 N2−2sN^2-2sN2−2s개 있어야 한다. 전체 변이 2N(N−1)2N(N-1)2N(N−1)개이므로

F≤2s+N(N−2)F\leq2s+N(N-2)F≤2s+N(N−2)

이다.

짝수 NNN에서 체스판의 각 색에는 차수 444인 칸이 aaa개, 차수 333인 칸이 2N−42N-42N−4개, 차수 222인 칸이 222개 있다. 차수가 큰 칸부터 선택하면 그 합은

min⁡(4s, 3s+a, 2s+N(N−2))\min\bigl(4s,\ 3s+a,\ 2s+N(N-2)\bigr)min(4s, 3s+a, 2s+N(N−2))

이다. 앞에서 구한 세 상한 중 작은 값을 달성하므로 최적이다.

이제 NNN이 홀수인 경우를 보자. m=(N2−1)/2m=(N^2-1)/2m=(N2−1)/2라고 하면 s≤ms\leq ms≤m이다. F=3s+aF=3s+aF=3s+a가 성립하려면 앞의 부등식에서 c+2e−eI=0c+2e-e_I=0c+2e−eI​=0이어야 한다. eI≤ee_I\leq eeI​≤e이므로 c=e=0c=e=0c=e=0이고, 따라서 u=au=au=a이다.

내부 격자의 칸 수는 2a−12a-12a−1이다. 이 내부를 지나는 뱀 모양 경로에서 서로 인접하지 않는 aaa개 칸을 고르는 방법은 첫 칸부터 하나씩 건너뛰며 고르는 방법뿐이다. 따라서 내부의 최대 독립집합은 내부 모서리를 포함하는 체스판 색 전체로 유일하다. 이 색은 바깥 격자의 네 모서리와도 같은 색이다.

이 내부 칸들을 모두 선택했다면 반대 색인 테두리 칸은 선택한 내부 칸과 인접한다. e=0e=0e=0이므로 그러한 칸은 추가할 수 없고, c=0c=0c=0이므로 모서리도 추가할 수 없다. 추가할 수 있는 칸은 같은 색인 모서리 이외의 테두리 칸 2N−62N-62N−6개뿐이다. 따라서 F=3s+aF=3s+aF=3s+a이면 s≤a+2N−6=m−3s\leq a+2N-6=m-3s≤a+2N−6=m−3이어야 한다. 즉, s≥m−2s\geq m-2s≥m−2인 경우에는 정수인 FFF에 대해

F≤3s+a−1F\leq3s+a-1F≤3s+a−1

이 성립한다.

네 모서리를 포함하는 색에는 차수 4,3,24,3,24,3,2인 칸이 각각 a,2N−6,4a,2N-6,4a,2N−6,4개 있다. 다른 색에는 각각 a−1,2N−2,0a-1,2N-2,0a−1,2N−2,0개 있다. 차수가 큰 칸부터 골랐을 때의 합을 비교하면 다음 상한들을 모두 달성한다.

  • 0≤s≤a0\leq s\leq a0≤s≤a이면 모서리를 포함하는 색에서 F=4sF=4sF=4s를 얻는다.
  • a<s≤m−3a<s\leq m-3a<s≤m−3이면 같은 색에서 F=3s+aF=3s+aF=3s+a를 얻는다.
  • s=m−2s=m-2s=m−2이면 어느 색에서든 F=3s+a−1F=3s+a-1F=3s+a−1을 얻는다.
  • s=m−1s=m-1s=m−1 또는 s=ms=ms=m이면 모서리를 포함하지 않는 색에서 F=3s+a−1F=3s+a-1F=3s+a을 얻는다.

N=3N=3N=3일 때 두 번째 구간은 비어 있으며 나머지 경우는 그대로 성립한다. 따라서 홀수인 경우에도 두 색의 후보 중 좋은 쪽이 모든 배치에 대한 상한을 달성하므로 최적이다.

−
1