[Codeforces Round #806 (Div. 4)] E. Mirror Grid
※ 짝수의 경우 왼쪽 상단(2사분면)만 확인해주면 모든 셀을 방문할 수 있음. 홀수의 경우 중앙이 추가되기 때문에 x좌표나 y좌표 중 하나를 추가로 확인해주어 g셀을 제외한 모든 셀을 탐색하게 해야됨 (i 짝수의 경우 5/2 홀수가 되기 때문에 문제없다. 홀수의 경우 6/2 로 열을 한 번 더 탐색해준다.) ※ 중앙 셀을 제외한 모든 셀은 다음과 같이 이동한다. a좌표 - [0,0] -> [0,3] -> [3,3] -> [3,0] b좌표 - [0,1] -> [1,3] -> [3,2] -> [2,0] 홀수의 경우 c좌표 - [2,0] -> [0,2] -> [2, 4] -> [4,2] (x와 y는 처음의 좌표 [x,y] -> [y,x의 반대] -> [x의 반대, y의 반대] -> [y..
[Codeforces Round #784 (Div. 4)] H. Maximal AND
※. 작업을 통해 ai의 비트 중에 비트 1개를 1로 바꿀 수 있다.(or 연산) ※. 가장 최상위 비트부터 바꾸는 것이 이득이다. (j = 2, 4 ,8을 바꾸는 거 보다 j = 16을 바꾸는 것이 더 큰 값) ※. 1에서 n개 까지의 배열값에서 (0~30)번째 비트가 1인것의 개수를 세어준다. (비트가 겹친다면 k작업을 적게 수행하여 결과를 바꿀 수 있다.) ※. (n - (0~30)비트 개수를 저장한 배열)이 k보다 작다면 결과값을 바꿀 수 있다. (n = 3, k = 2, [8,4,2]이면 arr[0] = 0, arr[1] = 1, arr[2] = 1, arr[3] = 1이다. 3 - 1(arr[3])은 2이므로 k작업을 2번해서 4와 2를 모두 or 8 (100 -> 1100, 10 -> 101..