[백준] 1309 동물원
-
수학으로 풀기
천천히 몇개 보다보면 규칙이 나온다. i번째 항은 i-1번째항*2 + i-2번째항+2 로 이뤄진다
DP로 하는건 나중에 올리겠음 ㅠㅠ
import java.util.*;
import java.io.*;
public class Main{
public static void main(String []args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
long[] d = new long[n+1];
// 초기값
d[1] = 2;
// n == 1 이면 걍 빨리 끝내자
if(n == 1){
System.out.println(3);
return;
}
d[2] = 6;
for(int i = 3 ; i <= n ; i++ ){
d[i] = d[i-1]*2 + d[i-2]+2;
d[i] %= 9901;
}
System.out.println((d[n] + 1)%9901);
}
}
Comments