hdu 4791 dp預處理 二分

2021-06-25 11:30:50 字數 459 閱讀 1700

題意: 列印東西,給出區間(張數)對應費用(到達一定張數就都按某更低的**),m次詢問,問最優費用。給的時候按張數遞增給的。

dp出當前張數到最後的最小值。對於詢問q,然後二分處》=q的最小的乙個張數的**。min(這個***p,dp[這+1])即可。nlogn;後來看網上有些人用線段樹,沒必要的。

ps:開始竟然因為犯中間資料爆int的初級錯誤!,不該不該!

#include#include#include#includeusing namespace std;

struct node

;long long dp[100005];

node v[100008];

int n,m;

int main()

int x;

while(m--)

else

}long long ans=v[l].pi*x;

if(l+1

HDU4791 貪心 二分優化

題意 有一家列印店,列印超過一定分數後每份的單價就會降低,你需要列印一些檔案,你可以列印敲好的份數或者是多列印一些廢紙以湊得更低的 問列印這些檔案所需的最小花費。題解 採用貪心策略,從最單價低價開始計算,直到計算到數量的區間正好包含所需印刷的產品數量。但是單純採取貪心策略遍歷整個 陣列會tle,所以...

hdu 2604 DP 矩陣二分

實際上就是這樣乙個問題,乙個序列僅由1和0組成,問n位不帶101和111子串行有多少個,結果模m 話說這是集訓的一道題,當時完全沒思路,今天做了一下,還是沒有做出來,不過好歹還會用最裸的記憶化搜尋。但肯定超時 話說集訓那時真的弱爆了。超弱的1b 看了下解題報告,發現1維dp既能搞定,再用矩陣二分。其...

hdu 3586 樹形dp 二分

題意 給n個節點的樹,要求使葉子節點與根斷開,割掉的邊的權值和不超過m。求這些被割邊的權值最大中的最小。dp u min dp v w w 為 u 到 v 的權值。如果w 大於二分的 mid dp u dp v 二分列舉邊權。include include include includeusing ...