최근에 세그먼트 트리라는 새로운 데이터 구조가 나왔고 2 차원으로 확장 될 수 있다고 읽었지만 구현 세부 정보를 읽을 수있는 좋은 소스를 찾을 수 없었습니다. 및 기타 물건. 그래픽 분야가 아닌 프로그래밍 콘테스트에서 사용하는 관점에서 배우고 싶습니다. 사용하여 해결할 수있는 몇 가지 문제도 유용 할 것입니다. 누군가가 좋은 소식을 들려주기를 바랍니다. 감사합니다.쿼드 트리 - 멀티 레벨 세그먼트 트리
답변
자세한 소식통을 찾으려면 확실하지 않습니다. 나는 k 차원의 세그먼트 나무가 어떻게 작동하는지 이해하는 것이 사람들에게 맡겨진다고 생각합니다. 당신의 입장에서 나는 그것으로 할 수있는 문제를 해결하려고 노력할 것입니다. 간단한 예제 (그리고 나는이 쿼리가 일부 전처리를 통해 O (1)에서 수행 될 수 있음을 알고있다) : 직사각형 범위 합계. 즉, 숫자로 채워진 행렬이 주어지면 부분 행렬 합계를 묻는 질의에 응답합니다. 여기에서는 하나의 semgent 트리를 사용하여 높이를 분할 한 다음 각 노드에 너비 기반 합계에 대한 추가 세그먼트 트리를 만들 수 있습니다. 그렇게 할 수 있다면 2 차원에 대해 알아야 할 모든 것을 알 것입니다. 세그먼트 나무. 다음 과제는 단일 요소를 업데이트하는 것입니다. 일부 아트를 사용하여 변경 사항을 적절하게 전파해야하므로 (세그먼트 트리 내부에서 일부 유형의 캐싱) :)
코드 샘플을 사용하여 1D 세그먼트 트리와 2D 일반화에 대한 좋은 기사가 있습니다. 당신은 아마 단지 코드 샘플을 생각해야 할 것입니다 그래서하지만 특히 프로그래밍 대회에 매우 어렵고 시간이 많이 걸릴 수 판명 수 있습니다, 여러 차원에 세그먼트 트리를 확장
) =, 러시아어입니다.
여러 차원이 필요한 경우 먼저 이진 인덱스 트리에 대해 알아야하며 여러 차원으로 확장 해보십시오.
이진 인덱싱 된 트리는 경우에 따라 세그먼트 트리보다 성능이 뛰어나지 만 다른 세그먼트에서는 단순히 부적합한 데이터 구조입니다.
세그먼트 트리를 사용할 때 여러 차원의 확장이 쉽습니다.
여기서 an article about them을 찾을 수 있습니다.
여기서 a problem that can help you test your implementation을 찾을 수 있습니다.
- 1. 쿼드 트리 자바 스크립트에
- 2. 균형 쿼드 트리
- 3. 쿼드 트리 분해
- 4. 카운트 멀티 레벨 마케팅 (트리) 레코드
- 5. 쿼드 트리 업데이트 개체가 실패했습니다.
- 6. 다차원 세그먼트 트리
- 7. 세그먼트 트리 Java 구현
- 8. 세그먼트 트리 Kth 최대
- 9. 세그먼트 트리 구현
- 10. 세그먼트 트리, 지연 전파
- 11. 멀티 부모 트리
- 12. 쿼드 트리 문제 - 중복 정보 저장
- 13. 쿼드 트리 및 동등한 하위 단위로 나누기
- 14. PMR 쿼드 트리 데이터 구조 및 알고리즘
- 15. 빠른 쿼드 트리 구조, matlab에 매트릭스 분할
- 16. 비 정사각형 이미지의 쿼드 트리 분해
- 17. MATLAB의 쿼드 트리 분해 : qtdecomp 함수 입력
- 18. JavaFX : 대규모 충돌 탐지 최적화 (쿼드 트리)
- 19. 세그먼트 트리 : x보다 작은 숫자
- 20. 세그먼트 트리 2D, 사각형 합
- 21. 세그먼트 트리 쿼리에 대한 설명
- 22. 세그먼트 화 오류 - 트리 표시
- 23. GSS1 -SPOJ - 세그먼트 트리 TLE
- 24. 이진 트리 레벨 순서 순회
- 25. PHP 트리 배열 제거 레벨
- 26. 사이퍼가있는 자동 다중 레벨 트리
- 27. 다중 레벨 트리 iOS의 UITableView
- 28. 레벨 순회의 순회 트리 순회
- 29. 방법 멀티 레벨 카테고리 계층 구조 (카테고리 트리) 만들기 -
- 30. 레벨 주문 트리 레벨별로 트리 레벨을 표시하는 일반 트리를 탐색합니다.