演算法提高 超級瑪麗
演算法提高 超級瑪麗
時間限制:1.0s 記憶體限制:256.0MB
問題描述
大家都知道"超級瑪麗"是一個很善於跳躍的探險家,他的拿手好戲是跳躍,但它一次只能向前跳一步或兩步。有一次,他要經過一條長為n的羊腸小道,小道中有m個陷阱,這些陷阱都位於整數位置,分別是a1,a2,....am,陷入其中則必死無疑。顯然,如果有兩個挨著的陷阱,則瑪麗是無論如何也跳過不去的。
現在給出小道的長度n,陷阱的個數及位置。求出瑪麗從位置1開始,有多少種跳躍方法能到達勝利的彼岸(到達位置n)。
現在給出小道的長度n,陷阱的個數及位置。求出瑪麗從位置1開始,有多少種跳躍方法能到達勝利的彼岸(到達位置n)。
輸入格式
第一行為兩個整數n,m
第二行為m個整數,表示陷阱的位置
第二行為m個整數,表示陷阱的位置
輸出格式
一個整數。表示瑪麗跳到n的方案數
樣例輸入
4 1
2
2
樣例輸出
1
資料規模和約定
40>=n>=3,m>=1
n>m;
陷阱不會位於1及n上
n>m;
陷阱不會位於1及n上
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
int n,m;
int main() {
cin>>n>>m;
vector<int>ans(n+1,-1);
for(int i=0;i<m;i++)
{
int a;cin>>a;
ans[a]=0;
}
ans[1]=1;
ans[2]=ans[2]==0?0:1;
for(int i=3;i<=n;i++)
{
if(ans[i])ans[i]=ans[i-1]+ans[i-2];
}
cout<<ans[n]<<endl;
return 0;
}
斐波那契的變形,在第二個位置如果有陷阱就是0,沒有陷阱就是1
1 1 2 3 5 8...
相關文章
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- NOI1.1題庫——超級瑪麗
- JAVA 實現《超級瑪麗升級版》遊戲Java遊戲
- Python實現超級瑪麗遊戲系列教程01瑪麗登場Python遊戲
- Scratch(五):Scratch小遊戲之超級瑪麗遊戲
- 如何讓你的機器學習玩超級瑪麗機器學習
- 如何用 Python 實現超級瑪麗的介面和狀態機?Python
- python實現超級瑪麗小遊戲(動圖演示+原始碼分享)Python遊戲原始碼
- python tkinter 超級瑪麗原始碼下載顏色碰撞檢測試程式.pyPython原始碼
- 超級瑪麗啟示錄:曾風靡全球的FC小遊戲,為何能征服億萬人的心?遊戲
- 藍橋杯 -- 演算法提高 身份證號碼升級演算法
- 英特爾將釋出“超級晶片技術” 效能提高几倍晶片
- 超級圖示 V3.0 演算法分析演算法
- 瑪麗莎品牌簡介
- 演算法提高 ADV-171 身份證號碼升級演算法
- 超級簡單的資料壓縮演算法—LZW演算法演算法
- 影象濾鏡藝術---ZPhotoEngine超級演算法庫演算法
- 為了提高開發效率,我實現了 uTools 的超級皮膚
- 超文字瀏覽框支援庫升級(3.1#51版),提高安全
- 藍橋杯_演算法提高_身份證升級(簡單字元處理)演算法字元
- iOS超級超級詳細介紹GCDiOSGC
- 演算法提高 拿糖果演算法
- 超級視網V1.51破解筆記[爆破,演算法]筆記演算法
- 30 個極大提高開發效率超級實用的 VSCode 外掛VSCode
- 2016藍橋杯演算法提高——身份證號碼升級演算法
- 輕量級超級 css 工具CSS
- 超級鋼琴
- 超級膠水
- 超級表達
- FPGA -- SPI 時序實現(超級靈活,超級好用)FPGA
- WebService之超級HelloWorldWeb
- 超級SQL--------OracleSQLOracle
- 超級大公司資訊系統上檔次、提高能力的重要事件記錄事件
- 天河二號:中國的超級計算機及其超級應用計算機
- 安卓第八夜 瑪麗蓮夢露安卓
- 如何提高個人密碼的安全級別密碼
- 超級程式設計師程式設計師
- 超級有用的網站網站