2개의 댓글이 있습니다.
-
-
wookayin -
Segment Tree 에서 구간에 update연산이 일어나는 경우는 구현이 문제마다 조금씩 다르지만(....)
기본적으로 쿼리 구간이 어떤 노드의 구간에 완전하게 포함되면 미리 저장된 정보를 바로 쓰고 아니면 분할..의 방법이라
[spoiler="더 보기..."]해당 구간만 update하고 그 아래 node로는 내려가지 않더라고요.
그럼 [4 8]구간을 업데이트 하고 나중에 쿼리로 [6 10]구간을 요구하면 문제가 생기지 않을까 합니다.
[/spoiler]
=> Query 를 할 때, 특정 구간에서 얻어낸 정보에다가, 트리에서 위로 올라오면서 "구간에 업데이트 했던 값"들을 보면서 적절히 고쳐줍니다-_-a
말로 하는게 더 어렵군염(..) 언어 능력이 딸려서 ...
16년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ibroker
index tree에서 구간 update를 어찌 하나요?
요새 문제를 풀다보면 자꾸 구간 update를 요구해서 자꾸 심기를 불편하게 하네요.
만약 [4 8]구간을 업데이트한다고 하면
[4 8], [4 6], [7 8], [4 5], [6 6], [7 7], [8 8], [4 4]
에 해당하는 모든 node를 업데이트 해야 하는데, 그러면
구간 업데이트 하는데 구간의 크기만큼의 시간이 걸린다면 index tree를 사용하는 의미가 없어지더라고요..
그래서 유명한 mars map문제 해설 등을 봤는데,
해당 구간만 update하고 그 아래 node로는 내려가지 않더라고요.
그럼 [4 8]구간을 업데이트 하고 나중에 쿼리로 [6 10]구간을 요구하면 문제가 생기지 않을까 합니다.
제가 생각하기에 구간 업데이트가 필요하다고 생각되는 문제를 올려봅니다.
http://acm.pku.edu.cn/JudgeOnline/problem?id=3580
http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=4108
http://acm.pku.edu.cn/JudgeOnline/problem?id=3657
http://acm.pku.edu.cn/JudgeOnline/problem?id=3667
http://acm.pku.edu.cn/JudgeOnline/problem?id=3580
답변 부탁드립니다 ! ^^
16년 전