Jzoj2309 遼哥遊戲

2021-08-14 20:12:26 字數 752 閱讀 1851

由於遼哥擁有強大的程式設計能力,他不費吹灰之力就改寫了那個遊戲。在遊戲開始前,他可以用炸彈消滅任意的碉堡,但是他不能通過這種方式來獲得分數。問題來了,在遊戲開始後,遼哥可以得到的最大分數是多少?

嗯,又是那種dp套貪心的題目了

先考慮如果知道破壞碉堡順序,我們考慮如何最優

顯然令f[i]表示一開始有i的能力的最優非常不方便轉移

我們考慮令f[i]表示破壞i個碉堡需要的最小能力值,f[0]=0

那麼,f[i]=f[i-1]+a[j](b[j]>=f[i-1]) o(n^2)暴力做即可,最後二分出最大的i滿足f[i]<=s

好的現在來考慮如何排序

考慮兩個狀態i,i+1

i和i+1不能交換的充分條件:b[i+1]i+1)

同時我們還有條件b[i]>=a[i+1]+σa[j] (j>i+1)

兩式相減得到:b[i+1]-b[i]

b[i+1]+a[i+1]

所以我們只需要按照a[i]+b[i]的順序排序即可

#include

#include

#include

using

namespace

std;

int n,m,f[1010];

struct p s[1010];

inline

bool c1(p a,p b)

int _18520() return0;}

int main()

Spree 2 3 0已經發布

簡要介紹 spree 2.3的最新更改已經加入對rails 4.1的支援,提供了更好的配置項的儲存,更好的針對多店鋪的支援,以及更好的遊客追蹤。spree 2.3的發布,有賴於總的97位貢獻者以及他們總的700多個的commit記錄。現在,我們非常興奮地宣布 spree 2.3發布了!現在,rail...

Spree 2 3 0已經發布

spree 2.3的最新更改已經加入對rails 4.1的支援,提供了更好的配置項的儲存,更好的針對多店鋪的支援,以及更好的遊客追蹤。spree 2.3的發布,有賴於總的97位貢獻者以及他們總的700多個的commit記錄。現在,我們非常興奮地宣布 spree 2.3發布了!現在,rails 4.1...

lenovo X230熱鍵功能

最近在優化x230,對於有偏執狂傾向的我,執著於啟動時間,在去掉啟動項的時候,忽然發現揚聲器按鈕和麥克風按鈕出現異常。遍搜渡娘無果,無奈之下重灌系統。最終發現幾個lenovo相互依賴的服務和程式 lenovo pm device 服務 這個是所有的基礎,包括lenovo hotkey client ...