전체 (32)
알림... (4)
주저리... (10)
유용할만한(?) 정보 (0)
프로그래밍 (5)
게임 (0)
애니&만화 (1)
일상 (7)
ColorSwitch 00 01 02
▣  알고리즘 - 해당되는 글 2건

CCW는 기하알고리즘의 기본이 돼는 알고리즘이죠

구현방법은 간단합니다.
수학시간에 배우는 도형의 면적 구하는 공식과 아주 비슷합니다.




파란색 곱한것은 더하고 파란색은 빼줍니다

즉  (x1*y2 + x2*y3 + x3*y1 - y1*x2 - y2*x3 - y3*x1)이
양수이면 세점이 시계 반대방향, 음수이면 시계방향입니다.
Trackback Address :: http://isair.silpir.net/trackback/21
  1. BlogIcon 아루비 2007/01/27 19:04 수정/삭제 댓글에댓글달기

    기하는 어려버 ~ ㅜㅜ

  2. BlogIcon 에어 2007/01/27 19:42 수정/삭제 댓글에댓글달기

    누군가가 내블로그를 [알고리즘 ccw]라는 키워드로 검색했더라 그레서 한번 올려봤지

    • BlogIcon 아루비 2007/01/28 15:18 수정/삭제

      ................................

  3. BlogIcon run ronnie run 2008/05/23 04:22 수정/삭제 댓글에댓글달기

    관심을 끌. 너가 좋을 동일할 지점을.

  4. BlogIcon normal pulse rate adult 2008/05/23 04:53 수정/삭제 댓글에댓글달기

    너는 위치가 우수한 있는다!

  5. BlogIcon ametuer sex vids 2008/05/23 05:22 수정/삭제 댓글에댓글달기

    정보를 위한 감사합니다.

  6. BlogIcon live animal shows 2008/05/23 05:55 수정/삭제 댓글에댓글달기

    정보를 위한 감사합니다.

  7. BlogIcon miss korea honey lee 2008/05/23 07:07 수정/삭제 댓글에댓글달기

    너는 아주 보는 좋은 위치가 있는다!

  8. BlogIcon stacy london pregnant 2008/05/24 00:18 수정/삭제 댓글에댓글달기

    뉴스를 위한 감사합니다…

  9. BlogIcon hot asian chicks 2008/05/24 00:25 수정/삭제 댓글에댓글달기

    너의 방문한 위치를 즐기는!

  10. BlogIcon ladyboy shemale 2008/05/24 00:26 수정/삭제 댓글에댓글달기

    걸출한 디자인! 좋은 디자인.

  11. BlogIcon dog stay train http 2008/05/24 02:18 수정/삭제 댓글에댓글달기

    걸출한 위치! 많은 감사.

  12. BlogIcon chick hearn 2008/05/24 03:25 수정/삭제 댓글에댓글달기

    친구는 위치의 너의 현재 팬이 되었다!

  13. BlogIcon lindos penes 2008/05/24 03:42 수정/삭제 댓글에댓글달기

    아주 좋은 나는 위치 그것을 감사 좋아한다!









뭐 인덱스트리의 기본적인 알고리즘은 스킵하도록 하고... 나중에 시간 있으면 알고리즘 강좌 올리면서 같이 올리던지...



보통 구현을 할때 바이너리트리로 구현을 하는데 구현하는게 해보면 꾀 귀찮고 추가메모리도 꾀 많이 잡아먹습니다 -.-;


여기 추가메모리를 전혀 사용하지 않고 바이너리인덱스트리보다 훨씬 빠르게 구현할수 있는 방법이 있습니다 !!

사용자 삽입 이미지

대충 구조를 그려보면 이렇습니다. 척 보기에도 트리가 훨씬 간결해 졌군요
잘 보시면 범위의 끝값(ex:1~8의 8)은 유일합니다. 그러므로 추가메모리가 들지 않죠..

Sum indexed-tree를 만들때 왼쪽과 오른쪽 모두 저장할 필요가 없다는 점에서 착안됀 것입니다. 3~4는 1~4에서 1~2를 빼면 돼니까요.
1~k 까지의 합을 구할려면 같은 높이의 왼쪽에 노드들을 모두 더하기만 하면 됍니다.


구현방법에는 아주 기가 막힌 방법이 있더군요...



이 알고리즘과 소스의 제공자는 "김원재"군(Arubirate) 이라고 밝힙니다...

void update(int val, int ix) { // ix에 val이 더한다
  do {
  tree[ix] += val;
  ix += ix&(-ix); // add least-sig one
  } while(ix<=N);
}

int get_sum(int ix) { // 1~ix에 있는 합을 구한다
  int res = tree[0];
while(ix>0) {
  res += tree[ix];
  ix &= (ix-1); // remove least-sig one
  }
  return res;
}

멋지지 않은가!! 아주 간단한 방법으로 구현시켰다..


저기 ix 의 변화부분에 대해 간략히 설명하자면

ix & (-ix)는 ix를 이진수로 표현했을때 마지막으로 나오는 1을 뽑습니다.
(6(110) 의 경우 2(010) )  그리고 이 값을 더하면 트리의 위로 올라갑니다.
ix & (ix-1)은 마지막으로 나오는 1을 지웁니다 ( 6(110)의 경우 4(100) )

뭐 직접 계산해보는게 좋을것 같군요...
(전 소스만 보고 이 과정을 연구한다고 죽는줄 ㅜㅜ)



이걸 응용하면 2차원의 인덱스트리도 빠르게 구할 수 있습니다


참고로 "김원재"군(Arubirate)은 이걸로 ioi기출문제이기도 한 pku1195 모바일을 6위로 풀어내었다고 합니다... 원본을 보고 싶으신분도 여기 들어가보시길...

Trackback Address :: http://isair.silpir.net/trackback/18
  1. BlogIcon 아루비 2007/01/19 09:26 수정/삭제 댓글에댓글달기

    진짜 강조해놨네 -_-;;

    그렇게 까지할꺼야 ㅎㅎ;;

    • BlogIcon 자유치 2007/01/22 14:35 수정/삭제

      난 다 까먹었다네 저거 -_-;;

  2. BlogIcon say no to sex 2008/03/13 02:58 수정/삭제 댓글에댓글달기

    너는 차가운 위치를 만들었다!

  3. BlogIcon 101 dog tip training 2008/03/13 06:33 수정/삭제 댓글에댓글달기

    여보세요, 아주 좋은 위치!

  4. BlogIcon cock cravers interracial 2008/03/13 07:25 수정/삭제 댓글에댓글달기

    위치에 중대한 일은 그것을 좋아했다!

  5. BlogIcon gun part 2008/03/13 08:06 수정/삭제 댓글에댓글달기

    좋은 위치는 그것 찾아본 즐겼다!

  6. BlogIcon dom fem male strap 2008/03/13 08:50 수정/삭제 댓글에댓글달기

    그런 경이롭 위치를 위해 많게의 감사!

  7. BlogIcon horse movies 2008/03/14 03:49 수정/삭제 댓글에댓글달기

    중대한 위치 축하!경이롭 위치!

  8. BlogIcon nude movie star 2008/05/23 04:37 수정/삭제 댓글에댓글달기

    너는 아름다운 웹사이트가 있는다!

  9. BlogIcon glamourmodelsgonebad 2008/05/23 05:11 수정/삭제 댓글에댓글달기

    여보세요, 좋은 아주 위치!

  10. BlogIcon nitro celeb 2008/05/23 05:43 수정/삭제 댓글에댓글달기

    걸출한 디자인! 좋은 디자인.

  11. BlogIcon simpson porn pics 2008/05/23 06:53 수정/삭제 댓글에댓글달기

    나의 너의 친구는 위치의 현재 팬이 되었다!

  12. BlogIcon porn video rss feed 2008/05/23 06:55 수정/삭제 댓글에댓글달기

    관심을 끌. 너가 좋을 동일할 지점을.

  13. BlogIcon bdsm slave collar 2008/05/23 07:37 수정/삭제 댓글에댓글달기

    이 위치는 아니라 유익한뿐 재미있는다!

  14. BlogIcon naked thirteen year olds 2008/05/24 01:39 수정/삭제 댓글에댓글달기

    걸출한 뉴스!! 종류 블로그!

  15. BlogIcon nystatin vaginal tablets 2008/05/24 01:56 수정/삭제 댓글에댓글달기

    우수한과 아주 도움이 되는!

  16. BlogIcon sex in norway 2008/05/24 03:03 수정/삭제 댓글에댓글달기

    아주 유용한 정보!

  17. BlogIcon pyrex company 2008/05/24 03:21 수정/삭제 댓글에댓글달기

    정말 같지 않는 블로그!










articles
recent replies
recent trackbacks
notice
BLOG main image
세상은 너무나 좁다 그렇기에...
2 28258
  rss skin by  m22m