백준알고리즘
동물원
먼지의삶
2019. 7. 13. 18:54
#include<cstdio>
using namespace std;
unsigned long long a[100001][3];
unsigned long long d[100001][4];
int n;
int main(){
scanf("%d", &n);
d[1][1] = 1;
d[1][2] = 1;
d[1][3] = 1;
for(int i = 2; i <= n; i++){
d[i][1] = d[i-1][2] + d[i-1][3];
d[i][1] %= 9901;
d[i][2] = d[i-1][1] + d[i-1][3];
d[i][2] %= 9901;
d[i][3] = d[i-1][1]+d[i-1][2]+d[i-1][3];
d[i][3] %= 9901;
}
unsigned long long sun = 0;
sun = (d[n][1] + d[n][2] + d[n][3]) %9901;
printf("%lld", sun);
return 0;
}
역시 굉장히 쉬운 DP문제
근데 모듈로 연산은 할때마다 헷갈린다 외워야할듯
값이 좀커질거같아서 역시나 unsigned long long 타입으로 진행함