藍橋杯 超級瑪麗(帶限制的走樓梯問題)遞迴解法

2021-10-02 05:57:13 字數 932 閱讀 9497

大家都知道"超級瑪麗"是乙個很善於跳躍的探險家,他的拿手好戲是跳躍,但它一次只能向前跳一步或兩步。有一次,他要經過一條長為n的羊腸小道,小道中有m個陷阱,這些陷阱都位於整數字置,分別是a1,a2,…am,陷入其中則必死無疑。顯然,如果有兩個挨著的陷阱,則瑪麗是無論如何也跳過不去的。

現在給出小道的長度n,陷阱的個數及位置。求出瑪麗從位置1開始,有多少種跳躍方法能到達勝利的彼岸(到達位置n)。

輸入格式

第一行為兩個整數n,m

第二行為m個整數,表示陷阱的位置

輸出格式

乙個整數。表示瑪麗跳到n的方案數

樣例輸入

4 1

樣例輸出

資料規模和約定

40>=n>=3,m>=1

n>m;

陷阱不會位於1及n上

其實就是走樓梯,只是有的地方不給走,就dfs暴力解就好了,和那個八皇后一樣的

#include

using

namespace std;

#define maxlen 44

#define trap 114

#define safe 514

int n, m;

int road[44]

;int cnt =0;

void

dfs(

int x)

if(road[x+1]

== safe)

if(road[x+2]

== safe)

}int

main()

for(

int i=

1; i<=m; i++

)dfs(1

);cout

}

藍橋杯 演算法提高 超級瑪麗

問題描述 大家都知道 超級瑪麗 是乙個很善於跳躍的探險家,他的拿手好戲是跳躍,但它一次只能向前跳一步或兩步。有一次,他要經過一條長為n的羊腸小道,小道中有m個陷阱,這些陷阱都位於整數字置,分別是a 1,a2,a m,陷入其中則必死無疑。顯然,如果有兩個挨著的陷阱,則瑪麗是無論如何也跳過不去的。現在給...

藍橋杯 ADV 165 演算法提高 超級瑪麗

演算法提高 超級瑪麗 時間限制 1.0s 記憶體限制 256.0mb 問題描述 大家都知道 超級瑪麗 是乙個很善於跳躍的探險家,他的拿手好戲是跳躍,但它一次只能向前跳一步或兩步。有一次,他要經過一條長為n的羊腸小道,小道中有m個陷阱,這些陷阱都位於整數字置,分別是a1,a2,am,陷入其中則必死無疑...

藍橋杯 特殊回文數(帶限制的全排列)遞迴解法

123321是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的。輸入乙個正整數n,程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 輸入一行,包含乙個正整數n。按從小到大的順序輸出滿足條件的整數,每個整數佔一行。1 n 54。include using namespace std in...