Skip to main content
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 <<  "Yonsein";
else if (korea >  yonsei)  cout <<  "Korean";
else cout <<  "Drawn";
A.	
  Baseball
Coder’s	
  	
  High	
  	
  2014	
  	
  해법 설명 프레젠테이션
Vu	
  Pham
Solution	
  2
while (T-­‐-­‐)  cout <<  "Yonsein";
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	
  count
the	
  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가지가 가능하므로
mapint,	
  double	
  D[N];	
  을 이용해야한다.
나머지는“그냥” 구현 문제 :)	
  야!	
  신난다~
Coder’s	
  	
  High	
  	
  2014	
  	
  해법 설명 프레젠테이션