Coder’s High 2014 풀이

Post on 18-Aug-2015

145 views 6 download

Transcript of Coder’s High 2014 풀이

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