【白俊】1904タイル


質問する



に答える

  • n>=3の場合、dp[n]=dp[n-1]+dp[n-2]
  • 問題の条件のため、結果を15746に分ける必要がある.(それ以外の場合はメモリが超過します)
  • コード#コード#

    def tile() :
        n = int(input())
        
        if n <= 2 :
            if n == 1 :
                return 1
            else :
                return 2
        else :
            dp = [0 for _ in range(n)]
            dp[0] = 1
            dp[1] = 2
            
            for i in range(2, n) :
                dp[i] = (dp[i-1] + dp[i-2]) % 15746
            
            return dp[-1]
    
    print(tile())