[백준] 2302번 극장 좌석 (c++)
[백준] 2302번 극장 좌석
문제 링크: https://www.acmicpc.net/problem/2302
문제
입출력
문제 접근
dp문제이고, 규칙이 있는 문제였다.
해당 규칙은 피보나치 수열이였다.
그래서 미리 숫자만큼 피보나치 수열의 값을 구하고,
VIP들 사이가 끼어있는 구간의 크기를 구하여서, 해당 크기의 피보나치의 수열의 값을 구하고, 다른 구간의 값과 곱해준다.
코드 구현(c++)
#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int cache[41];
cache[0] = 1;
cache[1] = 1; cache[2] = 2;
int N, M;
cin >> N >> M;
for(int i = 3 ; i <= N ; i++){
cache[i] = cache[i-1] + cache[i-2];
}
int temp;
int result = 1;
int prev = 0;
while(M--){
cin >> temp;
result *= cache[temp - prev - 1];
prev = temp;
}
result *= cache[N - prev];
cout << result << "\n";
}
Author And Source
이 문제에 관하여([백준] 2302번 극장 좌석 (c++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kpg0518/백준-2302번-극장-좌석-c저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)