BOJ13301
BOJ13301. 타일 장식물
문제
코드
시간초과..
#include <iostream>
using namespace std;
long long targetN(int x)
{
if (x == 1)
return 1;
else if (x == 0)
return 0;
else
return targetN(x - 1) + targetN(x - 2);
}
int main()
{
cin.tie(NULL);
ios::sync_with_stdio(false);
int n;
cin >> n;
long long result = 0;
long long garo = 1;
long long sero = 1;
for (int i = 1; i <= n; i++)
{
long long temp = targetN(i);
if (i == 1)
{
result = ((temp) + (temp)) * 2;
}
else if (i % 2 == 0)
{
sero += temp;
result = ((temp) + (sero)) * 2;
}
else if (i % 2 != 0)
{
garo += temp;
result = ((garo) + (temp)) * 2;
}
}
cout << result << '\n';
return 0;
}
짝수의 숫자를 입력하면 세로길이가 증가하고,
홀수의 숫자를 입력하면 가로길이가 증가한다.
증가하는 길이는 바로 피보나치수의 누적 값만큼 늘어난다.
늘어난 길이의 가로,세로 총 합 * 2
시간초과 오류 발생...
참조
#include <iostream>
using namespace std;
long long dp1[81];
long long dp2[81];
int main()
{
cin.tie(NULL);
ios::sync_with_stdio(false);
int n;
cin >> n;
dp1[1] = 1, dp1[2] = 1;
for (int i = 3; i <= 80; i++)
{
dp1[i] = dp1[i - 1] + dp1[i - 2];
}
dp2[1] = 4;
for (int i = 2; i <= 80; i++)
{
dp2[i] = dp2[i - 1] + dp1[i] * 2;
}
cout << dp2[n] << '\n';
return 0;
}
현자타임.. 🤨
Author And Source
이 문제에 관하여(BOJ13301), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aksel26/BOJ13301저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)