0∼n
0\sim n
0∼n的點,從i
ii移動到j
jj獲得aj∗
(j−i
)a_j*(j-i)
aj∗(j
−i)的價值。求最大價值。
考慮貪心,每次移動到往後a
ia_i
ai最大的點。
證明:
反證明:我們假設有一種情況i證畢
ij
a_jaj
但是之間移動到j
jj比先移動到i
ii更優。
但是若我們先移動到i
ii之後在移動j
jj權值為i∗a
i+(j
−i)∗
aj
i*a_i+(j-i)*a_j
i∗ai+
(j−i
)∗aj
而之間移動到j
jj權值為j∗a
jj*a_j
j∗aj
。兩個抵消掉(j−
i)∗a
j(j-i)*a_j
(j−i)∗
aj的部分就是i∗a
ii*a_i
i∗ai和i∗a
ji*a_j
i∗aj
。因為a
i>aj
a_i>a_j
ai>aj
所以先移動到i
ii更優。
此情況不存在
所以我們預處理字尾max
maxma
x就好了
#include
#include
using
namespace std;
const
int n=
100010
;int n,a[n]
,maxs[n]
,ans,last;
intmain()
}printf
("%d"
,ans)
;}
JZOJ4249 遊戲 貪心
乙個長度為n n的數列,每次可以選擇前面任意乙個位置i i跳到那裡,價值為ai i a i i 你所在的位置 求跳到n n的最大價值。證明 每次選擇max max 其中j j 表示你所在的位置。先設起點是0。那麼假設i i是最大價值的點,但是最優解應該先跳到j j,且下一次將跳到k k,且j i i...
JZOJ4249 遊戲 貪心
乙個長度為n n的數列,每次可以選擇前面任意乙個位置i i跳到那裡,價值為ai i a i i 你所在的位置 求跳到n n的最大價值。證明 每次選擇max max 其中j j 表示你所在的位置。先設起點是0。那麼假設i i是最大價值的點,但是最優解應該先跳到j j,且下一次將跳到k k,且j i i...
動態規劃 貪心 JZOJ 4249 遊戲
乙個人從起點0 00出發。他現在如果在i ii,那麼如果跳到j jj,那麼獲得的價值為 j i a j j i a j j i aj 求剛好落到終點n nn的最大可獲得的價值。剛開始看到就想到o n 2 的d po n 2 的dp o n2 的 dp,結果看了下資料發現只能拿60 6060 分,正解...