題目
這題是一道求最小值的題,一般求最小值的題都可以考慮用二分來做(y總)
根據題目可以看出無論是向上還是向下跳躍能量變化都是一樣的 ,設能量為e,則每跳一層能量的變化為e=2*e-h[i],其中h[i]是每層的高度,當e<0時就可以捨棄這個高度了,因為不滿足要求,當e>1e5的時候可以直接判斷當前高度是符合要求的(僅僅是符合要求,不一定是最終的答案,需要繼續二分來找),因為如果e>1e5,那麼往後的每次跳躍e只會越來越大。
所以就可以得到**了。
```cpp
#include
using
namespace std;
const
int n=
1e5+10;
int a[n]
;int n;
bool
check
(int d)
return1;
}int
main()
cout
}
機械人跳躍問題
機械人正在玩乙個古老的基於dos的遊戲。遊戲中有n 1座建築 從0到n編號,從左到右排列。保證編號為0的建築高度為0個單位。編號為i的建築 i 1,n 的高度為hi個單位。起初,機械人在編號為0的建築處。每一步,它跳到下乙個 右邊 建築。假設機械人在第k個建築,且他現在的能量值是botenergy,...
機械人跳躍問題
機械人正在玩乙個古老的基於dos的遊戲。遊戲中有n 1座建築 從0到n編號,從左到右排列。編號為0的建築高度為0個單位,編號為 i 的建築高度為h i 個單位。起初,機械人在編號為0的建築處。每一步,它跳到下乙個 右邊 建築。假設機械人在第k個建築,且它現在的能量值是e,下一步它將跳到第k 1個建築...
機械人跳躍問題
機械人正在玩乙個古老的基於dos的遊戲。遊戲中有n 1座建築 從0到n編號,從左到右排列。編號為0的建築高度為0個單位,編號為 i 的建築高度為h i 個單位。起初,機械人在編號為0的建築處。每一步,它跳到下乙個 右邊 建築。假設機械人在第k個建築,且它現在的能量值是e,下一步它將跳到第k 1個建築...