Compy's Blog
240 words
1 minutes
[BOJ] 성인 게임
2025-02-15

성인 게임

TimeLimitMemoryLimitConditionTAG
1s1024MB(1≤T≤1,000
1≤N≤1,000,000)
Dynamic Programming

우왕… 약간 처음보는 유형이라 조금 해매긴 했습니다. 나눠서 푸는 이런 느낌 오호 재밌었습니다. 이게 칼날이 막대기로 나오냐 아니냐 요걸로 나눠서 풀면 됩니다.

생각보다 어려웠따! 넵

아 그리구 식이 길어지니까 vim으로 하다가 이제 약간 IDE가 얼마나 편한지 알았습니다. 제가 원래 Xcode를 쓰고 있었는데… 그것도 기능이 참 많은 거였네요 허헣

정답 코드
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll mod = 1000000007;
int t, n;
ll dp[2][1'000'001];

void solve() {
    dp[0][0] = 1;
    dp[0][1] = 7;
    dp[1][1] = 3;
    
    for(int i = 2; i < 1'000'001; i++) {
                dp[0][i] = ((3 * dp[0][i-1]) % mod + (4 * dp[1][i-1]) % mod) % mod;
                dp[1][i] = (dp[0][i-1] + (2 * dp[1][i-1]) % mod) % mod;
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> t;
    solve();
    while(t-->0) {
        cin >> n;
        cout << dp[0][n] << "\n";
    }
    return 0;
}
[BOJ] 성인 게임
https://compy07.github.io/Blog/posts/boj/23256/
Author
뒹굴뒹굴 이정훈 공부방
Published at
2025-02-15