4개의 댓글이 있습니다.
  • A.I
    A.I

    23일까지 인줄 알고 시험기간인 탓에 넋놓고 있다가, 방금 종료된 것 보고 식은 땀을 흘리고 있습니다. 하하... 내 rating...
    로컬에서 진행중이던 제 솔루션도 웁니다... SA 와 GA가 짬뽕된 형태이긴 하지만, 대부분의 접근법은 동일한 것 같습니다.
    속도 최적화가 관건이었던 것 같기도 싶고 조금 더 월등한 intersection 체크 루틴이 있다면 보고 싶군요!


    14년 전 link
  • 일루
    일루

    수정했습니다 ㅠ
    관련해서 주말에 하루정도 날 잡고 과거 MM 문제들 보면서 연습하는 모임을 잡으면 하는데 참가자 분들이 계실지 모르겠네요...


    14년 전 link
  • A.I
    A.I

    intersection 에 대한 thread도 올라와있네요.
    http://forums.topcoder.com/?module=Thread&threadID=677737


    14년 전 link
  • ILyoan
    ILyoan

    기본적으론 SA이고 SA를 하기전에 전처리를 해서 점들의 초기 위치를 잡았습니다.
    전처리:
    처음에는 인접한 점들의 무게중심으로 점을 이동시키는 방법을 썼는데 이 방법을 쓰면 점들이 일렬로 배치되는 문제가 있어 나중에 sammon mapping으로 바꿨습니다.
    SA:
    우선 평면의 크기를 대폭 줄입니다. 원래는 700*700인데 정점과 에지수에 따라 10*10 ~ 20*20 정도로 줄여서 시작합니다.
    정점을 임의의 순서로 정렬하여 하나씩 이웃한 위치로 옮겼을때 이득이 최대가 되는 점을 찾아 이동합니다.
    일정시간이 되면 사이즈를 두배로 늘리고 반복합니다.
    사이즈를 늘리는 것에 대해서
    우선 초기에는 상대적으로 먼 지점으로 점들을 옮겼을 때의 이득을 구하고 후반에는 주변으로의 이동에 대한 이득을 취한다는 컨셉이었고 사이즈를 줄이면 서치공간이 줄어들기 때문에 시간에서 이득을 취할 수 있다고 생각했습니다.
    지금 생각해 보니 사이즈를 두배로 늘리는것이 점들의 이동 반경을 줄이는 것과 거의 비슷군요
    사이즈를 두배로 늘릴때 너무 급격하게 변화가 생기는거라 점진적으로 사이즈를 늘리는 방법이 없을까 고민을 했었는데 사이즈를 늘리지 말고 점의 이동 반경을 점진적으로 줄이면 되는 거였는데 미쳐 생각하지 못했네요 ㅠㅠ.
    교점 처리는 CLRS에서 배꼈습니다.


    14년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.