CP

SASA Programming Contest 2023 Open Contest Div. 1

khj20006 2023. 11. 18. 21:32
반응형

SASA Programming Contest 2023 Open Contest Div. 1에 참가했다. 아레나에 참가하고 싶었는데, 시간이 늦어서 등록을 못 했다.

 


A - 방형구 탐색

00:36 AC

 

쿼리를 naive하게 $O(N)$으로 구현하면 총 시간복잡도 $O(NQ)$로 통과한다.

 

 

B - 미역은 식물 아닌데요

00:40 AC

 

어떤 식물 $i$에 대해,

$P == 1$이면서 $M == 0$인 것은 항상 식물이다.

$P == 0$이거나 $M == 1$인 것은 항상 식물이 아니다.

그 외의 것들은 식물이 될 수도 있고, 되지 않을 수도 있다.

 

 

C - 가위 가위 가위

00:47 WA   00:48 AC

 

$1 \le i \le 100$에 대해, $i$번째에만 주먹을 내고 나머지는 모두 가위를 내서 대결을 총 100번 해보자.

반환 결과에 따라 머신의 $i$번째 패를 알 수 있다.

결과를 출력할 때 "!"를 출력하지 않아서 한 번 틀렸다.

 

 

D - 고인물이싫어

01:02 AC

 

모든 하수구를 시작점으로 두고 bfs로 물이 빠지는 칸을 모두 체크해두고, 직사각형 개수는 2차원 누적 합으로 구해주면 된다.

 

 

H - 방형구 탐색 (Hard)

02:30 AC

 

꽃의 종류가 10억 개라서, 좌표 압축을 써도 되지만 귀찮아서 map을 썼다.

구조는 map<int, pbds>이고, 각 pbds에는 해당 꽃이 나온 인덱스 번호를 저장한다.

꽃을 없애는 쿼리는 한 곳 당 최대 한 번만 진행하면 된다.

세그와 분할 정복의 사이 그 어딘가에 해당하는 테크닉으로 말단 정점에 가면 해당 인덱스를 pbds에서 erase해주었다.

꽃을 찾는 쿼리는 pbds의 order_of_key로 $(c+1)$미만의 개수 $- b$미만의 개수로 처리했다.

 


 

반응형

'CP' 카테고리의 다른 글

Codeforces Round 909 (Div. 3)  (0) 2023.11.19
2023 Sogang Programming Contest Open (Master)  (0) 2023.11.18
2023 IGRUS Newbie Programming Contest Open  (0) 2023.11.18
Codeforces Round 906 (Div. 2)  (1) 2023.10.31
Codeforces Round 900 (Div. 3)  (1) 2023.10.29