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
- 1557
- Good Bye 2022: 2023 is NEAR
- 기본키 변경
- E - Hanging Hearts
- Div. 2
- list_display
- 밑바닥부터 시작하는 딥러닝 1
- vue-google-login
- 2022
- Round 866
- 리버싱
- 인하대 프로그래밍 경진대회
- 레지스터
- dart
- 카카오 API
- 넥토리얼
- django
- Hello 2023
- Flutter
- 카카오 로그인
- expand item
- 코드포스
- Graph Cost
- vue3
- shake!
- iupc
- idpiframe_initialization_failed
- 앳코더
- 알고리즘 대회
- Codeforces Round 831 (Div. 1 + Div. 2)
Archives
- Today
- Total
pseong
AtCoder Beginner Contest 249 F - Ignore Operations 본문
F - Ignore Operations
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
atcoder.jp
dp [i][j] : i개까지 문자를 봤을 때 변환되는 문자의 길이를 j라고 할 때의 경우의 수
라고 놓고 문제를풀면 잘 풀리지만 최적화를 해야 풀린다. 그냥 dp 채우면 O(N^3)이다.
1.
1차원 또는 2차원 또는 3차원 dp 상관없이 dp를 바텀업으로 채울 때
중간에 어떤 연속적인 값을 더하는 구간이 존재한다면
dp를 채우면서 prefix_sum을 이용하면 연속적인 숫자의 방향의 개수에 따라 그 개수만큼 시간 복잡도의 차수를 줄일 수 있다.
dp를 해석하기보다 수치적으로 저런 구간이 나오면 그냥 prefix sum을 이용해서 압축시키면 된다.
먼저 문제에 대한 dp를 작성을 하고, 수치적으로 최적화하면 된다.
2.
mod 연산의 prefix sum을 이용할 때 주의해야 할 점이 음수가 나올 수 있다는 것이다. (굉장히 중요)
정말 중요하다. mod 연산에서의 뺄셈은 주의하자.
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
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 |
AtCoder Beginner Contest 250 F - One Fourth (0) | 2022.05.10 |
코드포스 Codeforces Round #751 (Div. 2) 풀이 (0) | 2021.10.30 |
코드포스 Codeforces Round #750 (Div. 2) 풀이 (0) | 2021.10.25 |
Comments