伪代码: dp(0,0) = 1; dp(1,0) = 1; dp(2,0) = 2; for i=3 to N:     for j=0 to K-1:         dp(i, j) = dp(i-1, j+1) + dp(i-2, j+1);     dp(i, K) += dp(i-3, 0);     dp(i, 0) += dp(i-2, 0) + dp(i-1, 0); return sum(dp(N, j)) for j=0 to K;