2021 SCPC Round 2 후기
2021. 8. 7. 21:03
후기
후기 1번은 보자마자 풀진 못했지만 30분 내에 해결했다. 2번은 처음 볼 때 문제를 약간 잘못 봐서 잘못된 풀이를 생각해냈고 약간 뿌듯했다. 하지만 코드를 짜면서 뭔가 잘못됨을 느꼈고 결국 못 풀었다. 3번은 아예 아무것도 생각나지 않았고 전탐색으로 부분점수라도 긁으려 했지만 그것도 시간 초과가 났다. 1. 원 안의 점 문제 설명 원의 반지름이 주어지고 원의 내부에 있는 격자점을 구하는 문제다. 풀이 위의 그림과 같이 원 내부 격자점의 개수 = 초록점 + 4 * (검은 점 한 세트)이다. 이때 초록점은 (r - 1) * 4 + 1로 구할 수 있다. 그렇다면 검은 점의 개수만 빠르게 구하면 되는데 이때는 이분 탐색 이용했다. 원 내부의 점 좌표를 (x, y) 라 할 때 x^2 + y ^2 < r^2인 성..
2021 SCPC Round 1 후기
2021. 7. 19. 00:33
후기
제주도 스쿠버 일정과 scpc일정과 겹쳐서 4시간 정도밖에 풀지 못했다. 2번까지 풀고 뒷 문제들이 크게 어려워 보이지 않았는데 다음 일정 때문에 못 풀어서 너무 아쉬웠다. 1. 친구들 N명의 사람이 있고, 각 사람은 d를 가지고 있는데 i번째 사람은 i + Di와 친구이다. i + Di > N이면 무시한다. A와 B가 친구라면 B와 A도 친구다. union find를 집합의 개수를 세면 풀 수 있다. 매우 쉬웠고 10분 정도만에 풀 수 있었다. #include #include using namespace std; int Answer; int par[100005], lev[100005]; int find(int x) { if (x == par[x]) return x; return par[x] = find..