Upload
baekjoon-choi
View
144
Download
6
Embed Size (px)
Citation preview
Vu Pham
Coder’s High 2014
해법설명 프레젠테이션
Coder’s High 2014 해법 설명 프레젠테이션
August 30, 2014
Vu Pham
문제 : https://www.acmicpc.net/problem/10211제출수 : 125정답수 : 56 (44.8%)첫정답자 : RiKang@고려대 (RiKang, 이승재)
(2m 42s)
출제 : myungwoo (전명우) 분류 : Greedy + Implementation
PA. MaximumSubarray
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
for (int i=1;i<=N;i++){s += X[i];if (m < s) m = s;if (s < 0) s = 0;
}
PA. MaximumSubarray
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
문제 : https://www.acmicpc.net/problem/10212제출수 : 773정답수 : 38 (4.9%)첫정답자 : 0YES @한양대 (hj_929, 이현지)
(44m 34s)
출제 : kriii (김경근) 분류 : Ad-‐hoc
PB. Mystery
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
여러가지방법이있는데,
1) srand(&a); 후랜덤쓰기
2) puts(((int)(&a)>>20)%2?”Yonsei”:”Korea”);
3) fopen이사용가능하므로적절히쓰기
등등…
PB. Mystery
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
문제 : https://www.acmicpc.net/problem/10213제출수 : 104정답수 : 8 (7.692%)첫정답자 : cki86201 @서울과고(cki86201, 박상수)
(20m 24s)
출제 : kcm1700 (김찬민) 분류 : Convex-‐Hull
PC. XhCompany
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
(1,A[1])(2,A[1]+A[2])(3,A[1]+A[2]+A[3])…(N,A[1]+A[2]+…+A[N])
여기서두점을이었을때의기울기가밀도가됩니다.
적절히컨벡스헐을이용하여구할수있습니다.
PC. XhCompany
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
문제 : https://www.acmicpc.net/problem/10214제출수 : 112정답수 : 88 (78.6%)첫정답자 : HisPSPartner @KAIST (etaehyun4, 이태현)
(1m 4s)
출제 : xhae (류현종)분류 : Implementation, Ad-‐hoc
A. Baseball
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
Solution 1
for (int i = 0; i < 9; i++){cin >> score[0] >> score[1];yonsei += score[0];korea += score[1];
}
if (yonsei > korea) cout << "Yonsei\n";else if (korea > yonsei) cout << "Korea\n";else cout << "Draw\n";
A. Baseball
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
Solution 2
while (T-‐-‐) cout << "Yonsei\n";
A. Baseball
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
F. MeatsOnTheGrill
문제 : https://www.acmicpc.net/problem/10219제출수 : 77정답수 : 49 (63.6%)첫정답자 : hydrogen @서울대 (csehydrogen, 김희훈)
(19m 57s)
출제 : kriii (김경근)분류 : Implementation, Ad-‐hoc
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
F. MeatsOnTheGrill
좌우대칭, 상하대칭중하나를골라서고기를뒤집어출력하시면됩니다.
고기먹고싶다…
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
C. CountCircleGroups
문제 : https://www.acmicpc.net/problem/10216제출수 : 358정답수 : 60 (16.8%)첫정답자 : RiKang@고려대 (RiKang, 이승재)
(7m 47s)
출제 : xhae (류현종) 분류 : Geometry + Graph
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
C. CountCircleGroups
1. if dist(i, j) <= r[i] + r[j]: Connected!
2. Build graph from fact 1.
3. Graph travel(BFS, DFS, …) to countthe number of groups
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
E. Maze
문제 : https://www.acmicpc.net/problem/10218제출수 : 92정답수 : 30 (32.6%)첫정답자 : pps789 @서울대 (pps789, 박상혁)
(51m 50s)
출제 : kcm1700 (김찬민)분류 : Perfect search + implementation
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
E. Maze
Solution����������� ������������������ 1.가능한모든상태공간을BFS로 탐색|답|����������� ������������������ ≤����������� ������������������ 10이므로,����������� ������������������ 최대 410 의 크기를탐색한다.
tip.����������� ������������������ 상태를 2(10-2)x(10-2)로 encode하고중복검사를하면 훨씬빠르다.
Solution����������� ������������������ 2.잘 생각해보면직전행동의 90도방향이동만시도해볼가치가있으므로210 탐색만해도된다.
시간복잡도:����������� ������������������ O(2|답| N2)
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
G.SelfRepresentingSeq
문제 : https://www.acmicpc.net/problem/10220제출수 : 44정답수 : 26 (59.1%)첫정답자 : ainta@서울과고 (ainta, 조승현)
(56m 24s)
출제 : kriii (김경근)분류 : Ad-‐hoc
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
G.SelfRepresentingSeq
• 간단한성질 :(모든수가나오는횟수를더하면 N)
• 비슷하게 :(첫 성질과A의정의때문)
• 이를통해작은 N에대해서완전탐색을하면답이보임→증명도어렵지않음
if (N <= 3 || N == 6) A = 0;else if (N == 4) A = 2;else A = 1;
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
D. KCMTravel
문제 : https://www.acmicpc.net/problem/10217제출수 : 216정답수 : 47 (21.8%)첫정답자 : RiKang @고려대 (RiKang, 이승재)
(75m 32s)
출제 : xhae (류현종)분류 : Dynamic Programming
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
D. KCMTravel
• Dynamic����������� ������������������ Programming혹은Dijkstra
• D[i][j]����������� ������������������ =����������� ������������������ i번 마을까지이동했고,����������� ������������������ 이동 비용이 j일때최단시간
• Dijkstra도 비슷함
• 시간복잡도:����������� ������������������ O(M(N+K))
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
B. ColoredBeadWorks
문제 : https://www.acmicpc.net/problem/10215제출수 : 57정답수 : 4 (16.7%)첫정답자 : Let Me Win @서울대 (corea, 윤형석)
(144m 26s)
출제 : altertain (이태윤)분류 : Dynamic Programming
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
B. ColoredBeadWorks
형태란현재판에서E,G,W를 0,1,2로바꾼후일열로늘어놓아삼진법으로나타낸것을의미한다고하자.
D[i][j] = i번째 action까지진행했을때, 형태가 j가될확률
형태는 3^16 = 43046721가지가가능하므로map<int, double> D[N]; 을이용해야한다.
나머지는“그냥” 구현문제 :) 야! 신난다~
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
I. TonsOfDamage
문제 : https://www.acmicpc.net/problem/10222제출수 : 62정답수 : 4 (6.5%)첫정답자 : Doju@서울대 (doju, 임동재)
(144m 26s)
출제 : kriii (김경근)분류 : Math – Linearity of Expectation
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
I. TonsOfDamage=����������� ������������������ 공격력관련효과를 i번 받았을때,����������� ������������������ 공격력의기대값
=����������� ������������������ 주문력관련효과를 i번 받았을때,����������� ������������������ 주문력의기대값
=����������� ������������������ 궁극기를 i번 사용시공격력관련효과를 j번 받을 확률
점화식은아래와같다.
답은
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
J. Fertilizing
문제 : https://www.acmicpc.net/problem/10223제출수 : 36정답수 : 2 (5.6%)첫정답자 : Let Me Win @서울대 (corea, 윤형석)
(244m 01s)
출제 : kriii (김경근)분류 : Greedy + Segment tree
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
J. Fertilizing
비료를주는과정을따라하다보면알수있는사실 :
첫 번째시점.����������� ������������������ i 번째날이끝난 후
가장큰 콩나무와가장작은콩나무의크기차가 i이하이다.
두 번째시점 i+1번째 날이되었을때
가장작은몇 개의콩나무에게크기가 i+1자라는비료를준다.����������� ������������������ 원래가장작았던콩나무가원래는가장컸던콩나무보다도높게자란다!
다시첫 번째 시점.����������� ������������������ i+1����������� ������������������ 번째날이 끝난후
가장큰 콩나무와가장작은콩나무의크기차가 i+1이하이다.
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
J. Fertilizing
앞의관찰을바탕으로첫날에모든콩나무를일렬로
놓았다고하면각날마다가장앞에있는C개에게비
료를주고,����������� ������������������ 뒤로 보내면크기순서가유지된다는것
을알 수있습니다.
(실제로는직접뒤로보내는것이아니라가장작은
콩나무의위치를기억함)
콩나무의크기는세그먼트트리나BIT등의자료구조
를통해저장하고필요할때꺼내서쓰면됩니다.
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
H. TestDataAnalysis
문제 : https://www.acmicpc.net/problem/10221제출수 : 15정답수 : 2 (13.3%)첫정답자 : RiKang@고려대 (RiKang, 이승재)
(70m 43s)
출제 : kriii (김경근)분류 : Dynamic Programming
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
H. TestDataAnalysis
l Maximum Subarray문제를푸는법
for (int i=1;i<=N;i++){s += X[i];if (m < s) m = s;if (s < 0) s = 0;
}
이를이용한가장보편적인다이나믹정의
물론네제곱, 잘해도세제곱이라안됩니다.
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
H. TestDataAnalysis
다이나믹인자가답의정보(m)를저장하면힘들다!
특정한 d이하인것들만구하려고하면어떨까??
(d이하인것들의개수) – (d-‐1이하인것들의개수)= (d인것들의개수)
그냥하면세제곱이니제곱으로잘줄입시다.음수인경우는쉬우니생략합니다.
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
K. Watering
문제 : https://www.acmicpc.net/problem/10224제출수 : 32정답수 : 1 (3.1%)첫정답자 : pichulia@고려대 (pichulia, 홍은기)
(119m 55s)
출제 : xhae (류현종)분류 : Geometry
Coder’s High 2014 해법 설명 프레젠테이션
Vu Pham
K. Watering
Coder’s High 2014 해법 설명 프레젠테이션
디렉터 째의저자직강이있겠습니다.
Vu Pham
Special Thanks to…
Coder’s High 2014 해법 설명 프레젠테이션
출제진 -‐김경근, 김찬민, 류현종, 이태윤, 전명우
스태프 -‐고창영, 김선영, 김숭, 김치호, 김태완, 박성규, 서민영, 신혜빈, 이준규, 이태승
그리고 BOJ의최백준님
Vu Pham
Coder’s High 2014
Coder’s High 2014 해법 설명 프레젠테이션
수고하셨습니다!!!
See you on Coder’s High 2015