UPC 維修柵欄(基本狀態轉移)

2021-09-25 17:52:56 字數 1169 閱讀 8096

這個題的基本狀態是當前這塊木頭需要不需要維修,第二狀態是要以怎麼樣的形式(連續多少塊)維修,一一枚舉取最大值即可。值得一說的是,除了0狀態(起始狀態),其餘都要初始化為最大值。

而第二狀態的列舉需要從0開始,0代表現有的所有都全修,到i-1為止,i-1代表就修它自己(這個長度由i-j確定)。

//#include#include #include #include #include #include #include #include #include #include #define determination main

#define lldin(a) scanf_s("%lld", &a)

#define println(a) printf("%lld\n", a)

#define reset(a, b) memset(a, b, sizeof(a))

const int inf = 0x3f3f3f3f;

using namespace std;

const double pi = acos(-1);

typedef long long ll;

typedef unsigned long long ull;

typedef long double ld;

const int mod = 1000000007;

const int tool_const = 19991126;

const int tool_const2 = 2000;

inline ll lldcin()

while (c >= '0' && c <= '9')

return si * tmp;

}///untersee boot ixd2(1942)

/**although there will be many obstructs ahead,

the desire for victory still fills you with determination..**/

/**last remote**/

ld a[5000],dp[5000];

int determination()

cout << fixed<< setprecision(3) << dp[n] << endl;

return 0;

}

DP 維修柵欄

農場的柵欄年久失修,出現了多處破損,晶晶準備維修它,柵欄是由n塊木板組成的,每塊木板可能已經損壞也可能沒有損壞。晶晶知道,維修連續m個木板 這m個木板不一定都是損壞的 的費用是sqrt m 可是,怎樣設計方案才能使總費用最低呢?請你寫程式幫忙計算。第一行包含乙個整數n n 2500 表示柵欄的長度。...

DP 維修柵欄

農場的柵欄年久失修,出現了多處破損,晶晶準備維修它,柵欄是由n塊木板組成的,每塊木板可能已經損壞也可能沒有損壞。晶晶知道,維修連續m個木板 這m個木板不一定都是損壞的 的費用是sqrt m 可是,怎樣設計方案才能使總費用最低呢?請你寫程式幫忙計算。第一行包含乙個整數n n 2500 表示柵欄的長度。...

最短Hamilton路徑 upc 狀壓DP

題目描述 給定一張 n n 20 個點的帶權無向圖,點從 0 n 1 標號,求起點 0 到終點 n 1 的最短hamilton路徑。hamilton路徑的定義是從 0 到 n 1 不重不漏地經過每個點恰好一次。輸入第一行乙個整數n。接下來n行每行n個整數,其中第i行第j個整數表示點i到j的距離 乙個...