Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 앳코더
- Hello 2023
- 카카오 로그인
- Good Bye 2022: 2023 is NEAR
- 넥토리얼
- 2022
- list_display
- 카카오 API
- Codeforces Round 831 (Div. 1 + Div. 2)
- 1557
- 알고리즘 대회
- 리버싱
- 인하대 프로그래밍 경진대회
- 밑바닥부터 시작하는 딥러닝 1
- Round 866
- shake!
- django
- Flutter
- expand item
- dart
- iupc
- E - Hanging Hearts
- Graph Cost
- 기본키 변경
- 코드포스
- idpiframe_initialization_failed
- 레지스터
- vue3
- Div. 2
- vue-google-login
Archives
- Today
- Total
pseong
AtCoder Beginner Contest 253 F - Operations on a Matrix 본문
F - Operations on a Matrix
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
atcoder.jp
세그먼트 트리 하나로 쿼리들을 관리하고, 질의가 들어왔을 때 과거의 세그먼트 트리가 필요한 것 까지는 알았다.
하지만 과거에 세그먼트 트리를 전부 저장하면 되지 않을까 생각했는데, 쿼리가 20만 개라 말도 안 되는 것이다.
계속 어떻게 해야 과거의 세그먼트를 꺼내서 답을 구할 수 있을까 생각했는데 답은 간단했다.
쿼리가 들어올 때 전부 쿼리 순서대로 쿼리를 저장한다.
그리고 과거의 세그먼트가 필요하다면 필요한 과거의 세그먼트와 필요한 답을 적어 놓은 다음에
다시 그 쿼리들을 시뮬레이션을 한다. 그렇게 되면 미래에 필요한 세그먼트들을 이미 알고 있기 때문에
미래에 필요한 세그먼트가 나타나면 미래에 필요한 답을 미리 저장해 놓는 방식으로 하면 된다.
결론 : 오프라인 쿼리를 잘 이용하자.
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
Codeforces Round #796 (Div. 2) D. The Enchanted Forest (0) | 2022.06.04 |
---|---|
Codeforces Round #795 (Div. 2) D. Max GEQ Sum (0) | 2022.06.01 |
Codeforces Round #792 (Div. 1 + Div. 2) E. MEX vs DIFF (0) | 2022.05.25 |
Codeforces Round #792 (Div. 1 + Div. 2) C. Column Swapping (0) | 2022.05.25 |
Codeforces Round #789 (Div. 2) D. Tokitsukaze and Meeting (0) | 2022.05.18 |
Comments