본문 바로가기

전체 글

Round 171 시도했던 문제 - B. 수강변경 https://www.acmicpc.net/problem/23305 - C. 눈덩이 굴리기 https://www.acmicpc.net/problem/23305 - D. 2xN 예쁜 타일링 https://www.acmicpc.net/problem/18230 수강변경 - 성공 먼저 바꾸고자 하는 수업 개수를 전부 센다. 다음으로 바꾸고싶은 수업이 있으면 count-- 한다. 수업 개수가 이미 0이라면 원하는 수업을 수강하지 못하는 학생이므로 ans++ 한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu.. 더보기
Round 172 시도했던 문제 - D. 초콜릿 피라미드 https://www.acmicpc.net/problem/25793 - E. 프린트 전달 https://www.acmicpc.net/problem/23887 초콜릿 피라미드 수학... 문제였다. 한 층을 채운다고 하면 아래와 같이 식을 세울 수 있다. w: r * c + (r - 1) * (c - 1) b: (r - 1) * c + r * (c - 1) 식을 조금 더 정리하면 이렇게 된다. w: 2 * r * c - (r + c) + 1 b: 2 * r * c - (r + c) 고민해봐야 할 부분은 여러 층을 쌓아야 하는데... 예시의 2 * 3을 들면 (2 * 3) + (1 * 2)를 해야 하고, 9 * 3인 경우 (9 * 3) + (8 * 2) + (7 * 1).. 더보기
순열 void swap(int &a, int &b) { int temp = a; a = b; b = temp; } void permutation(vector &v, int depth, int n, int r) { if (depth == r) { for(int i = 0; i < r; i++) cout 더보기
14217 그래프 탐색 음 수도와의 거리를 구해야 하고, 수도는 고정되어 있어서 수도 기준으로 bfs를 돌리면 되겠다 싶었다. bfs는 최대 500번 방문하고, q도 500번 걸리고, vector erase도 최대 500정도 걸려서 잘하면 통과할 것 같았다. (그런데 그럼 O(n^3) 정도일텐데 통과한게 신기하다) 풀이는 간단하다. 간선이 업데이트 될때마다 bfs를 돌린다.. 그리고 높이 값도 같이 계산한 다음 높이를 출력한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first.. 더보기
offset 대신 포인터로 사용하기 int _arr[20005]; int* arr = _arr + 10000; arr[-10] = 6; 북님 꿀팁 백업하기 더보기
2992 크면서 작은 수 여행중이라 노트랑 펜이 없어서 어려운 문제는 못 풀고 쉬운 백트레킹 문제로 넘어갔다. 백트레킹 너무 안 풀어서 낯설고 두렵다.. 그래도 문제집 풀면서 적응해야지 싶었는데 백트레킹으로 안 풀었다ㅎ 딱 보니 next_permutation 사용하면 끝날 문제라 간단히 넘어갔다. 하지만 만약 백트레킹을 사용한다면? 모르겠다. 다음 문제에서 마주하겠다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (.. 더보기
11995 Fenced In (Gold) [미완] ㅠㅜㅠㅜㅠㅜㅜㅠㅜㅠ 나중에 다시 봄 하....................................... #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii.. 더보기
20026 Fix Wiring 와악 처음에 문제 이해를 못했다. mst로 최대 최소를 구한다고??? 최소는 알겠는데 최대? 알고보니 모든 경우의 수 중 최대를 구하게끔 잘 연결해야 하는 거였다. 그림에도 나와있지만 불필요한 연결에 최솟값을 주면 그게 최대가 된다. 이리저리 그려가면서 생각해보니 답이 나왔다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace .. 더보기