牛客網 最小花費

2021-09-10 09:20:20 字數 989 閱讀 7793

題目描述

在某條線路上有n個火車站,有三種距離的路程,l1,l2,l3,對應的**為c1,c2,c3.其對應關係如下: 距離s 票價 09,09。 每兩個站之間的距離不超過l3。 當乘客要移動的兩個站的距離大於l3的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票。 現在給你乙個 l1,l2,l3,c1,c2,c3。然後是a b的值,其分別為乘客旅程的起始站和終點站。 然後輸入n,n為該線路上的總的火車站數目,然後輸入n-1個整數,分別代表從該線路上的第乙個站,到第2個站,第3個站,……,第n個站的距離。 根據輸入,輸出乘客從a到b站的最小花費。

輸入描述:

以如下格式輸入資料:

l1 l2 l3 c1 c2 c3

a bn

a[2]

a[3]

……a[n]

輸出描述:

可能有多組測試資料,對於每一組資料,

根據輸入,輸出乘客從a到b站的最小花費。

**:動態規劃問題

//考點:dp(動態規劃),最短代價問題

//s(n)=o(n*n)

//思路:1.使用ticket函式求出每兩站距離對應的**

// 2.初始化從第一站到第i站的距離

// 3.第乙個for迴圈i從a+1開始到b

// 巢狀乙個for迴圈,j從a開始一直到i之前,即到i站的票可能是從j站買的

// 判斷從j站買票是否比以往的方案更省錢

#includeusing namespace std;

int l1,l2,l3,c1,c2,c3;

int a,b;//分別表示起始點和終點站

int n;//路線上的總的火車站數目

//計算兩地的票價

int ticket(int dis)

int main()}}

cout<}

return 0;

}

牛客網 排序(歸併排序最小花費)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 小a有乙個dna序列串,強迫症的小a看它不順眼,想將它排好序。給定長為n的dna序列串s 僅由 a,t,g,c 最多四種字元構成 你可以進行任意次如下操作...

最小花費 Dijkstra

原題鏈結傳送門 d es crip tion description descri ptio n在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。i np ut inp...

砍樹最小花費

題意 有n種樹,每種樹給出高度h,砍掉每顆樹的花費c,每種樹的數量p,現在要砍掉一些樹,使得最高的樹的數量超過所有樹的一半,問最小花費。不同種類的樹高度可能相同 題解 列舉不同的高度,把高於它的樹都砍掉,然後比它矮的樹挑便宜的砍,使得該高度的樹佔所有樹的1 2 1。給樹按高度排序,首先可以用字尾和預...