DP基礎 火車票

2021-07-22 16:42:55 字數 1092 閱讀 8008

乙個鐵路線上有n(2<=n<=10000)個火車站,每個火車站到該線路的首發火車站距離都是已知的。任意兩站之間的票價如下表所示:站之間的距離 x與票價的關係: 如果距離 :0 < x < =l1 則票價為c1 如果距離 :l1 < x < =l2 則票價為c2 如果距離 :l2 < x < =l3 則票價為c3 其中l1,l2,l3,c1,c2,c3都是已知的正整數,且(1 <= l1 < l2 < l3 <= 10^9, 1 <= c1 < c2 < c3 <= 10^9)。顯然若兩站之間的距離大於l3,那麼從一站到另一站至少要買兩張票。注意:每一張票在使用時只能從一站開始到另一站結束。 現在需要你對於給定的線路,求出從該線路上的站a到站b的最少票價。你能做到嗎?

輸入檔案的第一行為6個整數, l1, l2, l3, c1, c2, c3 (1 <= l1 < l2 < l3 <= 10^9, 1 <= c1 < c2 < c3 <= 10^9) ,這些整數由空格隔開.第二行為火車站的數量n (2 <= n <= 10000).第三行為兩個不同的整數a、b,由空格隔開。接下來的 n-1 行包含從第一站到其他站之間的距離.這些距離按照增長的順序被設定為不同的正整數。相鄰兩站之間的距離不超過l3. 兩個給定火車站之間行程花費的最小值不超過10^9,而且任意兩站之間距離不超過 10^9。

輸出檔案中只有乙個數字,表示從a到b要花費的最小值.

輸入樣例:

3 6 8 20 30 40

72 637

8131523

輸出樣例:

70

則有dp[i]=dp[j]+c1 |dis(i,j)<=l1

dp[j]+c2 |dis(i,j)<=l2

dp[j]+c3 |dis(i,j)<=l3

總時間複雜度為o(n^2)

#include#define maxn 10010

#define inf 2000000010

#define dis sum[i]-sum[j]

int max(int a,int b)

int min(int a,int b)

}printf("%d\n",f[v]);

}

python火車票票價 Python火車票機

我被困在乙個練習,我需要做乙個火車票機,但我只是乙個星期的練習python,我不知道如何開始。在 首先我得到了這個 stations schagen heerhugowaard alkmaar castricum zaandam amsterdam sloterdijk amsterdam cent...

火車票業務

msgcode msginfo 100請求成功 101引數無效 102簽名驗證失敗 103該ip沒有許可權訪問此介面 104請求過於頻繁,請稍後重試 999未知的失敗原因 201該訂單不存在 202當前訂單狀態不允許執行此操作 203當前時間不支援此服務 204坐席無效 205發車日期無效 206取...

火車票相關

火車票優惠時間段 每年的6月1日 9月30日,12月1日 次年3月31日 中國鐵路總公司關於進一步優化改簽 退票規則的通知 鐵路客票延長預售期後,為了最大限度方便旅客 最大限度讓旅客充分利用車票資源,中國鐵路總公司決定進一步優化退票 改簽規則,現公布如下,自2014年12月3日起施行。一 為了方便旅...