ABC_231 - Panasonic Programming Contest 2021(AtCoder Beginner Contest 231)
A, B, C, D A, B, C: 간단 D: 결론만 말하면 연결된 곳이 3개 이상이거나 사이클이 있을 경우 No가 출력되어야 한다. 불친절한 예제로 직접 예외 케이스를 찾아야 한다. 엄청난 삽질.. 끝에 dsu로 풀긴 풀었다.
zeikar
Ideas → Reality. Always shipping (•̀ᴗ•́)و
A, B, C, D A, B, C: 간단 D: 결론만 말하면 연결된 곳이 3개 이상이거나 사이클이 있을 경우 No가 출력되어야 한다. 불친절한 예제로 직접 예외 케이스를 찾아야 한다. 엄청난 삽질.. 끝에 dsu로 풀긴 풀었다.
A, B, C A, B: 간단 C: 칠해지는 좌표의 규칙을 알면 된다. i-j, i+j 값을 이용하면 칠해지는 위치인지 판별 가능하다.
A, B, C, D A, B 간단. 단, A는 처음에 이해가 안되서 1번 틀림... C: 정렬을 한 후 자신보다 300점 높은 개수를 세고 K보다 작거나 같으면 Yes 출력. 개수를 셀 때 upper bound 이용. D: 들어갈 수 있는 자리를 map으로 예약해두고 값이 업데이트 될 때마다 제거, 자리를 찾는 건 lower bound 이용. 단, n을 넘…
A, B, C, D A, B: 간단 C: 그냥 dfs 탐색해주면 된다. D: x, y 모든 쌍에 대해 좌표의 차이 (기울기)를 gcd로 나눠서 중복을 제거하면서 저장하면 된다.
A, B, C, D A, B, C: 쉬움 D: DP + prefix sum. 일반적인 DP로 하면 시간 초과가 되므로 prefix sum도 섞어서 계산해주면 된다.