hdu 1506 動態規劃

2021-07-10 07:13:39 字數 482 閱讀 8907

//最近在做dp題,做了幾道揹包題,看到這題一開始沒有什麼思路,因為暴力的方法一定會超時。

//看完大牛的**就理解了。

//先從左到右掃一遍,往左延伸,l陣列記錄長度;再從右往左,往右延伸,r陣列記錄長度。總長度就是l[i]+r[i]-1;

#include#include#include#includeusing namespace std;

#define ll __int64

ll dp[100010],l[100010],r[100010];

ll n;

int main()

ll t;

for(i=2;i<=n;i++)

}for(i=n-1;i>=1;i--)

}ll ans=0;

for(i=1;i<=n;i++)

{ t=dp[i]*(l[i]+r[i]-1);

if(ans

(連續的矩形)HDU 1506

題意 7 2 1 4 5 1 3 3 直接講資料 給出7個矩形的高,底長都為1,求最大的連通的矩形塊的面積 思路 如果暴力的話肯定超時,有乙個特別巧妙的預處理,如果我們知道每乙個矩形的左右兩邊能延伸到哪就好了,這相當於乙個並查集 如果我找到了 i 並且小於等於第 i 1 的高度,那 i 1 的左邊界...

hdu 1506 並查集的思想

就是利用rig和lef陣列記錄左邊連續的比自身高的最遠位置,然後統計,每次只要找到乙個中斷點則查詢結束,避免了重複運算,最壞複雜度是n 2但平均複雜度,但對於一般的資料還是有很優秀的複雜度的 include include include include define max 100007 usin...

hdu2159 動態規劃

problem description 最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的...