動物園


質問する



に答える


説明:


縦横に2つのライオンがn節に並んでいて、ライオンは縦横に寄り添うことができません.
D[N][0]=N行未配置
D[N][1]=N番行の左側のみ
D[N][2]=N番行の右側のみ
D[N][0]=D[N][0]+D[N][1]+D[N][2](3種類可能)
D[N][1]=D[N][0]+D[N][2](1に入ると空または2に入ることができる).
D[N][2]=D[N][0]+D[N][1](2に入ると空または1に入ることができる).

コード#コード#

import java.util.Scanner;

public class Num15988 {

	public static void main(String[] args) {
		
		 Scanner sc = new Scanner(System.in);
		 
	        int n = sc.nextInt();
	        int[][] d = new int[n+1][3];
	        d[0][0] = 1;
	        
	        for (int i=1; i<=n; i++) {
	            d[i][0] = d[i-1][0] + d[i-1][1] + d[i-1][2];
	            d[i][1] = d[i-1][0] + d[i-1][2];
	            d[i][2] = d[i-1][0] + d[i-1][1];
	            for (int j=0; j<3; j++) {
	                d[i][j] %= 9901;
	            }
	        }
	        
	        System.out.println((d[n][0] + d[n][1] + d[n][2])%9901);
	}

}

コードの説明


注意:
ソース:https://www.acmicpc.net/problem/1309