나는 this programming problem을 해결하려고 노력했지만, 알아낼 수 없기 때문에 온라인 솔루션을 발견했습니다. 해당 솔루션 중 하나를 작동하는 이유하지만 난 정말 *SPOJ : M3TILE 솔루션 설명
작업이 얼마나 많은 방법으로 할 수있는 3 * n에서 계산하는 것입니다 (n >= 0
, n은 만 입력) 사각형 완전히 2로 가득 .. 이해할 수 없다 1 도미노.
(빨간색 선 라이더 대표) :
이 3 * 2 사각형이 가질 수있는 세 가지 조합이 있었다는 것을 나는 텍스트를 읽을 때 내가 먼저 종이에 그린, 그리고 내가 본 것을이었다 그리고 n이 홀수 인 경우 전체 사각형을 채울 방법이 없기 때문에 솔루션은 0입니다 (한 조각은 항상 도미노에 의해 밝혀지지 않습니다).
따라서 n이 짝수이면 솔루션은 3^n
이고 n이 홀수이면 0
이라고 생각했습니다. 나는 틀렸다.
#include <iostream>
using namespace std;
int main()
{
int arr[31];
arr[0]=1;
arr[1]=0;
arr[2]=3;
arr[3]=0;
for(int i = 4; i < 31; i++) {
arr[i] = arr[i-2] * 4 - arr[i-4]; //this is the only line i don't get
}
int n;
while(1) {
cin >> n;
if(n == -1) {
break;
}
cout << arr[n] << endl;
}
return 0;
}
왜이 작업을 수행을?!
니스 증거! 자세한 정보는 http://oeis.org/A001835 –
@Daniel n = 0에 해당하는 기본 사례를 설명해 주시겠습니까? –
@ AtulSingh n = 0 인 경우 셀이없는 보드가 있습니다. 타일을 칠하는 한 가지 방법이 있습니다. 타일을 쌓지 마십시오 (3 × 0 보드에 3,0 = 0 셀이 있으므로 0/(2 · 1) = 0/2 = 0 타일이 필요합니다). –