問題描述
小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想知道他最少需要多少時間到達頂層。第一行包含...