꼭 이걸 써야 되는지 써도 되는지는 모르겠다 공개적인 곳에서 자랑하는 것도 아니고, 그래도 이런 경험을 해볼 일이 얼마나 될라나 싶어서 여기다 대강 글로 적어 남기고 싶다. 사실 겨울학교 전까지만 해도 내가 잘하는 지도 몰랐고 국대에 대한 욕망도 별로 없었는데 (기대치가 없으니), 와서 보니까 내가 생각보다 잘하더라. 겨울학교 끝날 때 시험을 치고 대강 6등? 언저리에 머물렀더니 확실히 유혹이 생겼다. 딱히 잘본것도 아닌데 그렇다고 딱히 못 본것도 아니고 그 점수대가 다 비슷비슷해서. 꼴지를 해도 공부야 했겠지만 그래도 목표치를 조금 높게 잡아보기로 했다. 그런다고 죽는것도 아니고 ㅎㅎ 겨울학교 갔다오고 배운게 참 많다.. 세그먼트 트리를 짤 수 있게 된 것도 사실상 그 이후였고, 컨벡스헐트릭도 몇달만에..
https://www.acmicpc.net/problem/2519 새로운건 없는데 다까먹었네.. 다음과 같은 논리식들을 만족하는 막대기가 필요하다.1. 교차하는 막대기 두 쌍이 있다면, 두 쌍 중 한 쌍이 사라져야만 한다.2. 3개의 막대기 중 한 막대기를 사용한다면, 나머지 두 막대기는 사용하면 안된다.고로 2-SAT으로 풀리는 문제이다. 논리식을 만들어주자. 2번은 너무 당연히도 명제이다. 막대기 A를 지운다는 것을 E(A) 라고 표현했을 때, 2번은 E(A) -> ~E(B), E(A) -> ~E(C)... 를 6 (3 * 2)개 만들어주면 된다.1번은 약간 변형해줘야 명제가 된다. E(A) || E(B) 라는 식의 명제인데. 논리식은 가정이 참이면 결론이 참이어야 하고, 가정이 거짓이면 항상 참이다..
핵어렵다 ㅎㅎ https://www.acmicpc.net/problem/5474 1. Greedy - O(NHlgH)그리디 전략을 설명하기 전에 사실 돛대의 순서들이 문제에 전혀 상관이 없다는 사실을 알아야 한다. 때문에 돛들을 편한대로 정렬한 다음에 쓰면 된다.그리디 전략은 다음과 같다. 돛대라는 말은 어감이 짜증나니(?) 막대라는 말로 대신하겠다." 막대들을 길이가 증가하는 순서대로 정렬한 후, 각 막대에 대해서 H개의 돛들을 꽂을 수 있는 열 중 가장 꽃혀있는 돛이 적은 열에 꽃는다. 이를 모든 돛에 대해서 반복한다. 이후 열에 꽃혀있는 돛의 개수가 n개일 경우 n * (n-1) / 2를 각 열에 대해서 더한다." 딱 봐도 될거같은 이 그리디 전략은 실제로 된다. (^^;) 왜 되는지는 나도 모르니..
tl;dr 우여곡절이 많았는데 생각보다 많이 올라서 기분좋다 (+85 = 2057) A패스 여담으로 코드를 개더럽게 짰다 (나만 더럽게 짠건 아닌듯 ㅎㅎ) B그래프를 이것저것 그려보며 생각을 해봤다 사실 처음에는 Hopcroft Karp가 아닐까 하는 알지도 못하는 알고리즘에 대한 개쓸데없는 생각을 하면서 멘붕을 시전했지만 역시 개쓸데없는 생각이었고 그냥 위상정렬하면 되더라.. http://183.106.113.109/pool/ioi_islands/ioi_islands.php… 를 얼마전에 푼게 엄청 도움된듯. 여러분도 푸세여! 디버깅하는데 시간을 꽤 날렸는데 너무 아깝다 Dynamic Scoring 상에서 500점이라서 멘붕했었는데 시스템에서 1000돼서 행복했다. 다행이도 시스템 테스트에서 사람들이 ..
ppt 자료로 대신.
http://gall.dcinside.com/board/view/?id=rock&no=1734130&page=1
http://geniusainta.com/problems/view/APIO14_palindrome 이 문제의 정해는 Manacher's Algorithm + Suffix Array이다.난 전자는 알지만 후자는 모르기 때문에 (...) SA 대신 Hash를 사용해서 풀었다. 때문에 처음부터 해시를 사용했다는 가정 하에 설명한다. unordered_map을 기준으로 설명한다 (괜히 로그떼면 기분 좋으니까 (?)) 1. Naive - O(n^2)substring의 개수가 O(n^2)이며 해싱을 사용하면 팰린드롬 판별은 O(1)에 가능하다. 모든 팰린드롬을 map에 때려박고 개수를 세면 된다. 2. Hash + Manacher + Tree - O(n)일단 한 문자열의 서로 다른 팰린드롬의 개수는 n개임을 알고 ..
- Total
- Today
- Yesterday