hdu 1692 列舉 剪枝

2021-07-11 05:52:29 字數 630 閱讀 6025

題意:給你一些井的資訊,井中原有的水,當井中的水滿足一定量後會被破壞並且這些水全部流入下乙個井中,用多少能量能直接破壞這個井。然後問要想破壞第n口井至少要多少能量。

解題思路:這題首先是要找到從哪口井開始破壞,因為要破壞第n口井,要麼直接破壞n,要麼n之前有連續的幾口井一同被破壞,如果中間出現了乙個不破壞的井,那麼之前的能量就浪費了。

一般的思路肯定是兩層迴圈就搞定,但看到這個資料量有點怕超時,結果繞了好大的彎去找一層迴圈的解決辦法都錯了。最後看別人的思路,還是之前的兩層迴圈就可以搞定了。自己被資料給嚇到了。這題網上分類為dp,其實我感覺這題dp不是很明顯。

#include#include#includeusing namespace std;

const int maxn = 100005;

const int inf = 0x7fffff;

int n,w[maxn],l[maxn],p[maxn];

int main()

if(sum < ans) ans =sum;

} printf("case %d: need to use %d mana points.\n",cas++,ans);

} return 0;

}

HDU3721 列舉 最長路

題意 給你一顆n個節點n 1條邊的樹,每條邊都有乙個權值,現在讓你任意移動一條邊然後把這條邊連線到任意兩個點上,最後問你怎樣移動才能使樹上相距最遠的兩個點距離最小。思路 先求出樹的最長路,然後列舉移動最長路上的所有邊,移走這條邊後,原樹必定分為不連線的兩顆子樹,分別求這兩顆子樹的最長路,然後分別找到...

完數(hdu1406)列舉

problem description 完數的定義 如果乙個大於1的正整數的所有因子之和等於它的本身,則稱這個數是完數,比如6,28都是完數 6 1 2 3 28 1 2 4 7 14。本題的任務是判斷兩個正整數之間完數的個數。input 輸入資料報含多行,第一行是乙個正整數n,表示測試例項的個數,...

HDU 6103 列舉 尺取

題意 給出乙個字串,問兩個不相交的字串對稱相減的絕對值和小於等於 m的最長長度。思路 如果存在兩個不相交的字串,那麼必然兩個字串之間存在對稱軸,分為兩種 1.子串之間有奇數個其它字元,那麼列舉其中的字元。2.子串之間有偶數個其它字元,那麼列舉其中的空格。對稱軸確定之後,對對稱的串計算出其對稱相減的和...