aspen138 edited 3 年,3 月前
n,k=map(int,input().split())
s=set()
if k!=0:
a=list(map(int,input().split()))
s=set(a)
dp=[0 for i in range(200)]
if 1 not in s:
dp[1]=1
if 2 not in s:
dp[2]=dp[1]+1
if 3 not in s:
dp[3]=dp[2]+dp[1]+1
for i in range(4,n+1):
if i not in s:
dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
else:
dp[i]=0
print(dp[n])
这好像还是18年研究生复试题目
直接扔代码了,值得注意的是:初始化边界条件的时候,也要考虑到Obstacle[]