你是乙隻小跳蛙,你特別擅長在各種地方跳來跳去。
這一天,你和朋友小 f 一起出去玩耍的時候,遇到了一堆高矮不同的石頭,其中第 ii 塊的石頭高度為 h_ihi,地面的高度是 h_0 = 0h0=0。你估計著,從第 ii 塊石頭跳到第 jj 塊石頭上耗費的體力值為 (h_i - h_j) ^ 2(hi−hj)2,從地面跳到第 ii 塊石頭耗費的體力值是 (h_i) ^ 2(hi)2。
為了給小 f 展現你超級跳的本領,你決定跳到每個石頭上各一次,並最終停在任意一塊石頭上,並且小跳蛙想耗費盡可能多的體力值。
當然,你只是乙隻小跳蛙,你只會跳,不知道怎麼跳才能讓本領更充分地展現。
不過你有救啦!小 f 給你遞來了乙個寫著 ak 的電腦,你可以使用電腦程式幫你解決這個問題,萬能的計算機會告訴你怎麼跳。
那就請你——會寫**的小跳蛙——寫下這個程式,為你 noip ak 踏出堅實的一步吧!
輸入格式:
輸入一行乙個正整數 n,表示石頭個數。
輸入第二行 n 個正整數,表示第 ii 塊石頭的高度 hi。
輸出格式:
輸出一行乙個正整數,表示你可以耗費的體力值的最大值。
輸入樣例#1
2輸出樣例#12 1
5輸入樣例#2
3輸出樣例#26 3 5
49樣例解釋
兩個樣例按照輸入給定的順序依次跳上去就可以得到最優方案之一。
資料範圍
對於 1 \leq i \leq n1≤i≤n,有 0 < h_i \leq 10 ^ 40對於 10\%10% 的資料,n \leq 3n≤3;
對於 20\%20% 的資料,n \leq 10n≤10;
對於 50\%50% 的資料,n \leq 20n≤20;
對於 80\%80% 的資料,n \leq 50n≤50;
對於 100\%100% 的資料,n \leq 300n≤300。
洛咕11月月賽第2題
在剩餘的石頭中最大和最小來回跳,有點像二分答案。貪心,注意要開long long int。
#include #include #include #include using namespace std;
long long int a[301],n,s;//一定要開long long!
int main()
sort(a+1,a+n+1);//排序
int l(0),r(n);//初始化頭位置和尾位置
while(lcout
}
貪心 洛谷P4995 跳跳!
洛谷p4996 跳跳!題 目描 述 color題目描述 題目描述 你是乙隻小跳蛙,你特別擅長在各種地方跳來跳去。這一天,你和朋友小 f 一起出去玩耍的時候,遇到了一堆高矮不同的石頭,其中第 i ii塊的石頭高度為h ih i hi 你估計著,從第 i ii 塊石頭跳到第 j jj 塊石頭上耗費的體力...
洛谷P4995 跳跳!題解
簡單描述一下吧,就是說有n塊石頭,起始可以跳到任何一塊上面,接著也是,只不過每一塊石頭只能跳一次,求耗費的最大的體力 計算方法見鏈結 這道題一看,我們要最大化我們的體力值,說明我們的每一次要盡可能的跳的遠,此時我們就可以採用貪心的思想,把每一次的跳躍體力值最大化,那麼就能得到體力值總和的最大化。先把...
題解 P4995 跳跳!
說實話這個題我一開始想了好久dfs超時得了30可能因為我太弱了 吃得苦中苦方為人上人現在終於a了當然體會更多 1 首先 這是個真的真的貪心題 貪心思路就是每次都從未跳過得最高的 或最低的 跳到最低處 最高處 這樣差值才最大 2 知道貪心思路了就要寫好 qaq 寫法有很多種,像我這種蒟蒻就只會寫這一種...