[ ALGORITHM ]/[ 백 준 ]

[BAEKJOON] 2482번 : 색 상 환

HiStar__ 2020. 9. 20. 09:38

문 제

 

소 스  코 드

#include <iostream>

constexpr int MOD	{ 1'000'000'003 };

int dp[1'001][1'001];		// N, K


// i번째 칸을 칠하는 경우	dp[i-2][j-1]
// 안칠 하는 경우			dp[i-1][j]
// N번째 칸의 경우, 
// 칠할 경우 1번 칸을 칠해서는 안되고, N-1번 칸도 칠하면 안되기 때문에, 
// dp[i][j] = dp[i-2][j-1] + dp[i-1][j]

int main() {
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);

	int N, K;

	std::cin >> N >> K;
	
	for (int i = 0; i <= N; ++i) {
		dp[i][0] = 1;
		dp[i][1] = i;
	}

	for (int i = 2; i <= N; ++i) {
		for (int j = 2; j <= K; ++j) {
			dp[i][j] = (dp[i - 2][j - 1] + dp[i - 1][j]) % MOD;
		}
	}

	int answer{ (dp[N - 1][K] + dp[N - 3][K - 1]) % MOD };
	std::cout << answer;

}

 

풀 이

 

  • 다이나믹 플밍 / 점화식

 

출 력 값

 

 

문 제  출 처

문제 링크 : www.acmicpc.net/problem/2482

 

2482번: 색상환

첫째 줄에 N색상환에서 어떤 인접한 두 색도 동시에 선택하지 않고 K개의 색을 고를 수 있는 경우의 수를 1,000,000,003 (10억 3) 으로 나눈 나머지를 출력한다.

www.acmicpc.net

 

'[ ALGORITHM ] > [ 백 준 ]' 카테고리의 다른 글

[BAEKJOON] 17404번 : RGB 거리 2  (0) 2020.09.19
[BAEKJOON] 1086번 : 박 성 원*  (0) 2020.09.18
[BAEKJOON] 2098번 : 외판원 순회*  (0) 2020.09.17
[BAEKJOON] 11723번 : 집 합  (0) 2020.09.16
[BAEKJOON] 1956번 : 운 동  (0) 2020.09.15