티스토리 뷰
반응형
solved.ac 티어 : 플래 2
이문제는 joseph0528.tistory.com/30
이 문제랑 별 차이가 없다. 다른 점은 룩 문제는 가로, 세로이지만 비숍 문제는 대각선이라는 거밖에 없다. 비숍 문제도 왼쪽 아래 대각선이랑 오른쪽 아래 대각선을 구해주면 끝이다.
import sys
sys.setrecursionlimit(10**9)
input=sys.stdin.readline
def dfs(x):
for i in range(len(l[x])):
y=l[x][i]
if t[y]:continue
t[y]=True
if q[y]==0 or dfs(q[y]):
q[y]=x
return True
return False
a=int(input())
b=int(input())
r=[[0 for i in range(a)]for g in range(a)]
M=[[0 for i in range(101)]for g in range(101)]
l=[[] for i in range(5001)]
for i in range(b):
c,d=map(int,input().split())
r[c-1][d-1]=1
nx=[]
ny=[]
xcnt=0
ycnt=0
x=0
def A(y,x):
global nx,xcnt
p=[-1,0,0,0]
while y<=a-1 and x<=a-1:
if r[y][x]==1:
if p[0]!=-1:nx.append(p)
p=[-1,0,0,0]
else:
if p[0]==-1:xcnt+=1;p[0]=y;p[1]=x
l[xcnt].append(M[y][x])
p[2]=y;p[3]=x
x+=1
y+=1
if p[0]!=-1:nx.append(p)
def B(y,x):
global ny,ycnt
p=[-1,0,0,0]
while y>=0 and x<=a-1:
if r[y][x]==1:
if p[0]!=-1:ny.append(p)
p=[-1,0,0,0]
else:
if p[0]==-1:ycnt+=1;p[0]=y;p[1]=x
M[y][x]=ycnt
p[2]=y;p[3]=x
y-=1
x+=1
if p[0]!=-1:ny.append(p)
for i in range(a):y=i;x=0;B(y,x)
for i in range(1,a):y=a-1;x=i;B(y,x)
for i in range(a):y=a-i-1;x=0;A(y,x)
for i in range(1,a):y=0;x=i;A(y,x)
#print(nx)
#print(ny)
maxr=max(ycnt,xcnt)
#for i in range(a):
# for g in range(a):
# print(M[i][g],end=" ")
# print()
#print()
#print(l)
q=[0]*(maxr+1)
t=[0]*(maxr+1)
cnt=0
for i in range(maxr):
t=[0]*(maxr+1)
if dfs(i+1):
cnt+=1
print(cnt)
반응형
'ps' 카테고리의 다른 글
BOJ 4386(별자리 만들기)풀이 (0) | 2021.02.04 |
---|---|
BOJ 14621(나만 안되는 연애)풀이 (0) | 2021.02.02 |
BOJ 9525(룩 배치하기)풀이 (0) | 2021.02.01 |
BOJ 2565(전깃줄)풀이 (0) | 2021.01.30 |
BOJ 2912(백설공주와 난쟁이)풀이 (0) | 2021.01.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 구현
- 알고리즘
- 그래프 탐색
- BOJ
- 수학
- 정렬
- 트리에서의 다이나믹 프로그래밍
- Python
- 완전 탐색
- 느리게 갱신되는 세그먼트 트리
- 잡봇
- 다이나믹 프로그래밍
- codeforces
- discord bot
- 자료 구조
- 이분매칭
- 자료구조
- 깊이 우선 탐색
- 이분 탐색
- C++
- 누적 합
- 트리
- 그리디 알고리즘
- A Dance of Fire and Ice
- 개발
- 선분 교차 판정
- 그래프 이론
- 세그먼트 트리
- KOI
- 최소 스패닝 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함