演算法提高 秘密行動

2021-10-07 23:50:19 字數 982 閱讀 8091

問題描述

小d接到一項任務,要求他爬到一座n層大廈的頂端與神秘人物會面。

這座大廈有乙個神奇的特點,每層的高度都不一樣。

同時,小d也擁有一項特殊能力,可以一次向上跳躍一層或兩層,但是這項能力無法連續使用。

已知向上1高度消耗的時間為1,跳躍不消耗時間。由於事態緊急,小d想知道他最少需要多少時間到達頂層。

輸入格式

第一行包含乙個整數 n,代表樓的高度。

接下來n行每行乙個整數 ai,代表i層的樓層高度(ai ≤ 100)。

輸出格式

輸出1行,包含乙個整數,表示所需的最短時間。

樣例輸入53

5184

樣例輸出

1資料範圍

對20%的資料, n ≤ 10

對40%的資料, n ≤ 100

對60%的資料, n ≤ 5000

對100%的資料, n ≤ 10000

題解

動態規劃:

f[i][0]: 走到第 i 層,無跳躍能力,所消耗的時間。

f[i][1]:走到第 i 層,有跳躍能力,所消耗的時間。

#include

#include

using

namespace std;

const

int n =

10010

;int h[n]

, f[n][2

];intmain()

cout <<

min(f[n][0

], f[n][1

])<< endl;

return0;

}

演算法提高 秘密行動

題目描述 小d接到一項任務,要求他爬到一座n層大廈的頂端與神秘人物會面。這座大廈有乙個神奇的特點,每層的高度都不一樣,同時,小d也擁有一項特殊能力,可以一次向上跳躍一層或兩層,但是這項能力無法連續使用。已知向上1高度消耗的時間為1,跳躍不消耗時間。由於事態緊急,小d想知道他最少需要多少時間到達頂層。...

藍橋杯 演算法提高 秘密行動

include include include include using namespace std const int n 10010 int n int a n int f n 2 第二維為0的話表示到達某一層是跳上來的,為1表示爬上來的。一開始做時根本沒想第二維,但是怎麼做也做不對,所以又想...

藍橋杯C 試題 演算法提高 秘密行動

小d接到一項任務,要求他爬到一座n層大廈的頂端與神秘人物會面。這座大廈有乙個神奇的特點,每層的高度都不一樣,同時,小d也擁有一項特殊能力,可以一次向上跳躍一層或兩層,但是這項能力無法連續使用。已知向上1高度消耗的時間為1,跳躍不消耗時間。由於事態緊急,小d想知道他最少需要多少時間到達頂層。第一行包含...