PS 23

Div.2 #967 C

트리 구조로 되어있는 숨겨진 그래프n-1 개의 간선을 찾아야 함15n 개의 쿼리를 통해n≤1000트리 구조의 특성상, 임의의 두 노드 사이의 경로는 유일하다한번에 하나씩 컴포넌트를 합쳐나가면?유니온 파인드 이용사이에 모르는 컴포넌트가 나오면?그냥 그거 찾지 뭐...?중요한건 임의의 두 컴포넌트를 "연결" 하고자 하는 것거리가 절반씩 줄어드니, logN서로 다른 두 컴포넌트 찾는 법유니온 파인드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;//Change Class Name to ..

PS/Codeforces 2024.09.27

Div.2 #968 D1

mex를 사용하여 입력받은 값을 최대로 만드는 문제mex는 두번 사용하면 최대로 커지므로, 이를 이용해 달성 가능한 가장 큰 값을 리스트를 순회하며 확인한다.만약 한번만 사용가능했다면 그래프 문제가 됐을 것 같다.맨날 전역에 동적 메모리 할당하고, 오랜만에 PS하느라 까먹었는데메모리 할당도 할당된 크기만큼 시간이 든다!시간복잡도 터지는것에 주의하자.import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.*;//Change Class Name to Proble..

PS/Codeforces 2024.09.27

Div.2 #953 C

k 번마다 전구가 on-off 됨시간 - 스타트시간/k 의 값이짝수이면 켜진 시점홀수이면 꺼진 시점무조건 모든 전구가 한번이라도 켜진 시점 이후 k시간 안에 전구가 켜져야됨이후는 반복되는 패턴(x - a_i) / k 의 패리티가 모두 짝수인 가장 작은 x최대와 최소 사이 공간이 존재하냐를 묻는 문제로 바뀜((x - a_i) / k) % 2 == 1x += k - (x - a_i) % k(x - a_i) / k % 2 == 0y = min(y, x + k - (x - a_i) % k)import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import..

PS/Codeforces 2024.09.27