http://codeforces.com/contest/724 B (14분) N^6 짬. 이거 별로 안쉬웠다... 그냥 글러먹은듯 ㅠ D B를 풀고 친구 스탠딩을 봤을 때(=14분) 정우형이 AC를 받은 걸 확인했다. 그래서 잡았다. 그 때까지만 해도 내가 이걸 한시간 이상 잡을 줄은 몰랐다.. 문제를 처음에 보고 lexicographically라는 조건을 보고 내가 처음 한 생각은 "길이를 최소화해보는게 좋겠군!" 이었다. 대충 이 때부터 망한 듯 하다. 길이를 최소화한 상태에서 lexicographically smallest를 구했더니 예제가 안 나왔다. 앞에서부터 안 뽑힌 것중 가장 character가 작은 걸 뽑아가는 그리디를 생각했다. 세그먼트 트리를 하나 짰다. 예제 안나왔다. 또 하나 이상한 ..
일전에 Coder's High 2016에 전갈 그래프에 대한 문제를 출제한 적이 있었다. 문제 전갈 그래프에 대한 이론적 뒷배경에 대해서는 위키백과 참고. 개인적으로 꽤 애착이 가는 문제인데, 사실 저 문제를 general case에서 해결하는 방법은 오랫동안 모르고 있었다. 고민을 했는데 못 풀고 결국은 관련 자료를 봤다. 재미있는 알고리즘이여서 공유하려고 한다. 그래프의 모든 정점의 degree에 대해서 생각을 해보자. 가시의 degree는 1이고, 꼬리의 degree는 2이고, 몸통의 degree는 n-2이고, 나머지 정점의 degree는 1 ~ n-3이다. 이제 아무 정점이나 잡은 후, degree에 따라서 케이스를 나누자. d = 1, d = 2, d = n-2일 경우에는 몇가지 케이스를 해결하..
[2015/07/24 MCMF 보강] [2016/10/03. 옛날에 썼던 글이라 내용을 대폭 보강해서 다시 올린다. 이 글은 "정리하는" 개념의 글이니, 문제나 알고리즘에 대한 구체적인 설명은 따로 찾길 바란다.] [2016/10/14 잡설을 추리고 증명 관련 부분을 개별 글로 뺐다. 증명 뿐만 아니라 "답을 출력하는" 일이 필요하다면 해당 글 참고] 유량(flow) 관련 문제는 대부분 유량을 흘릴 수 있는 경로를 찾고 그 경로에 유량을 보내줌으로써 해결한다. 비슷비슷해서 난 별로 차이가 없는 줄 알았는데 얼마전 DFS로 maxflow의 증가경로를 찾으면 안된다는 얘기를 듣고 멘붕함. 이 기회를 통해서 정리하려 한다. 여담으로, 프로그래밍 콘테스트 챌린징의 네트워크 유량 부분에 굉장히 중요하고 쉽게 배우..
- Total
- Today
- Yesterday