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
- vue-google-login
- expand item
- django
- 카카오 로그인
- 알고리즘 대회
- E - Hanging Hearts
- vue3
- Codeforces Round 831 (Div. 1 + Div. 2)
- Flutter
- idpiframe_initialization_failed
- 기본키 변경
- Good Bye 2022: 2023 is NEAR
- 코드포스
- iupc
- Graph Cost
- 2022
- Round 866
- 레지스터
- Hello 2023
- 넥토리얼
- shake!
- 1557
- Div. 2
- 앳코더
- 밑바닥부터 시작하는 딥러닝 1
- 카카오 API
- 인하대 프로그래밍 경진대회
- 리버싱
- dart
- list_display
Archives
- Today
- Total
pseong
Codeforces Round #795 (Div. 2) D. Max GEQ Sum 본문
Problem - D - Codeforces
codeforces.com
이것도 풀 수 있었는데 못 풀었다.
풀이는 맞았는데 구현에서 애먹다가 펑! 20분 정도만 더 줬으면 AC 받을 문제였다.
세그먼트 트리로 그냥 풀면 되는데
배열에서 자기 자신보다 큰 가장 가까운 원소 찾는 것을
그냥 스택을 써서 구현하면 되는데 멀티 맵을 써서 구현하다가 시간 다 까먹었다.
17298번: 오큰수
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
www.acmicpc.net
이문제를 풀었으면서 왜 이상하게 구현을 했는지 모르겠다.
일단 이번 D문제의 풀이는 간단하다.
세그먼트 트리는 2개가 필요하고 각 원소는 특정 원소와 각 원소 까지의 부분합이 저장되어 있다.
여기서 특정 원소는 합에서 제외한다. (스위핑 하면서 세그먼트 트리를 관리해야 한다.)
그리고 최댓값이 저장되어 있다.
특정 원소는 주어진 배열을 스위핑 하면서 관찰하고 있는 원소다.
스위핑 하면서 (특정 원소의 위치-1)부터 (왼큰수의 위치+1)까지의 (특정 원소의 위치-1)을 포함하는 각 각의 연속 합의 최댓값이 0보다 크거나 (특정 원소의 위치+1)부터 (오큰수의 위치-1)까지 (특정 원소의 위치+1)을 포함하는 각 각의 연속 합의 최댓값이 0보다 크다면 답은 NO이고 이러한 조건을 만족하는 특정 원소가 존재하지 않다면 답은 YES이다.
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
Codeforces Round #802 (Div. 2) D. River Locks (0) | 2022.06.20 |
---|---|
Codeforces Round #796 (Div. 2) D. The Enchanted Forest (0) | 2022.06.04 |
AtCoder Beginner Contest 253 F - Operations on a Matrix (0) | 2022.05.29 |
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 |
Comments