NOJ 1401 乘車費用 題解要點

2021-07-28 18:52:18 字數 1012 閱讀 3786

這是我的第一道動態規劃題目

其實質是乙個 帶權的 固定路的 dag 問題

以下是初學dp解題時容易犯的一些錯誤和要點

1.狀態轉移方程 d(i)=min

2.求取最短路時解的陣列應初始化為無窮大

3.此題必要的初始啟動條件(邊界條件)(不同的題有不同的條件)就本體而言初始為d[0]=0(0公里時費用為0)

4.條件轉移 d(0)->d(n) 答案保留在d[n]處

以下為**

// noj--1401 動態規劃 最小乘車費用問題

// 實質是乙個帶權的完全揹包問題

// 實質是乙個帶權的固定路的dag問題

#include#include#define maxn 1000

#define local

using namespace std;

const int busnum = 10;

int w[busnum+1];

int n;

int d[maxn];

int main()

} cout << d[n] << endl;

return 0;

}

#include#include#define local

#define maxn 1000

#define min(a,b) ((a)<(b))?(a):(b)

using namespace std;

const int inf = (int)1e7;

const int busnum = 10;

int w[busnum + 1];

int n;

int d[maxn];

int dp(int tot)//記憶化搜尋,遞迴

int main()

最小乘車費用

題意 假設某條街上每一公里就有乙個公共汽車站,並且乘車費用如下表 而任意一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案,使得總費用最小 分析f i min f i f i j a j vari,j,n longint f,a array 0.100 o...

最小乘車費用

某條街上每隔一公里就有一汽車站,乘車費用如下表 公里數 1 2 3 4 5 6 7 8 9 10 費用 12 21 31 40 49 58 69 79 90 101 而一輛汽車從不行駛超過 10 公里。某人想行駛 n 公里,假設他可以任意次換車,請你幫他找到一種乘車方案使費用最小 10 公里的費用比...

XYNUOJ 最小乘車費用

時間限制 1 sec 記憶體限制 128 mb 提交 狀態 討論版 某條街上每一公里就有一汽車站,乘車費用如下表 公里數12 3456 78910 費用12 2131 4049 5869 7990 101而一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案...