题目信息: 综合练习 难度:###/### 动态规划
提示信息:
有一个密室逃脱游戏,有100间密室连在一排。密室编号是从1开始连续排列一直排到第100间密室,如下: 1 2 3 4 5 6 ..... 99 100 游戏规则∶ 1.玩家初始位置在1号密室; 2.每次玩家可以进入右边的一个密室,也可以跳过一个密室进入下个密室(如:当玩家当前在3号密室,他可以进入4号密室也可以进入5号密室); 3. 有毒气的密室不能进入需要避开。
编程实现∶
给定三个正整数X,Y,M(X<Y<M≤100),表示三个密室编号。X号密室和Y号密室有毒气泄漏,不能进入,玩家需要进入到M号密室。按照游戏规则进入M号密室有多少种路线方案。 例如∶X=2,Y=4,M=7,进入M号密室有2种路线方案,分别是1->3->5->6->7路线和1->3->5-7路线。
输入描述∶
输入三个正整数X,Y,M(X<Y<M),X和Y表示有毒气密室编号,M表示需要进入的密室编号,且三个正整数之间以英文逗号隔开
输出描述∶
输出进入M号密室有多少种路线方案
示例一
输入:2,4,7输出:2示例二
输入:1,5,9输出:9示例三
输入:3,5,10输出:5
题解:
a = input().split(",")
x.y.m = int(a[0]),int(a[1]),int(a[2])
dp = [0]*101
dp[0],dp[1] = 0,1
for i in range(2,m+1):
if i != x and i != y:
dp[i] = dp[i-1]+dp[i-2]
print(dp[m])