這是我的第一道動態規劃題目
其實質是乙個 帶權的 固定路的 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公里,假設他可以任意次換車,請你幫他找到一種乘車方案...