7 3 森森快遞 35分

2021-10-06 08:42:07 字數 2102 閱讀 5936

7-3 森森快遞 (35分)

有兩個地方超時,要用線段樹維護資料。

/*

7-3 森森快遞 (35分)

森森開了一家快遞公司,叫森森快遞。因為公司剛剛開張,所以業務路線很簡單,可以認為是一條直線上的n個城市,這些城市從左到右依次從0到(n−1)編號。由於道路限制,第i號城市(i=0,⋯,n−2)與第(i+1)號城市中間往返的運輸貨物重量在同一時刻不能超過c

​i​​

公斤。公司開張後很快接到了q張訂單,其中j張訂單描述了某些指定的貨物要從s

​j​​

號城市運輸到t

​j​​

號城市。這裡我們簡單地假設所有貨物都有無限貨源,森森會不定時地挑選其中一部分貨物進行運輸。安全起見,這些貨物不會在中途卸貨。

為了讓公司整體效益更佳,森森想知道如何安排訂單的運輸,能使得運輸的貨物重量最大且符合道路的限制?要注意的是,發貨時間有可能是任何時刻,所以我們安排訂單的時候,必須保證共用同一條道路的所有貨車的總重量不超載。例如我們安排1號城市到4號城市以及2號城市到4號城市兩張訂單的運輸,則這兩張訂單的運輸同時受2-3以及3-4兩條道路的限制,因為兩張訂單的貨物可能會同時在這些道路上運輸。

輸入格式:

輸入在第一行給出兩個正整數n和q(2≤n≤10

​5​​

, 1≤q≤10

​5​​

),表示總共的城市數以及訂單數量。

第二行給出(n−1)個數,順次表示相鄰兩城市間的道路允許的最大運貨重量c

​i​​

(i=0,⋯,n−2)。題目保證每個c

​i​​

是不超過2

​31​​

的非負整數。

接下來q行,每行給出一張訂單的起始及終止運輸城市編號。題目保證所有編號合法,並且不存在起點和終點重合的情況。

輸出格式:

在一行中輸出可運輸貨物的最大重量。

輸入樣例:

10 6

0 7 8 5 2 3 1 9 10

0 91 8

2 76 3

4 54 2

輸出樣例:7*/

#include

//使用兩重for維護區間超時,需要用線段樹

using

namespace std;

const

int size =

100005

;long

long ilist_begin[size]

, ilist_end[size]

, ilist_cha[size]

, ilist_flag[size]

;long

long ilist_road[size]

;long

long

find_min

(int ibegin,

int iend)

//找區間中最小載重量

}return itemp;

}void

set_road

(int max_weight,

int ibegin,

int iend)

//維護最新道路載重

}int

find_min_cha_position

(int q)

//找剩下運輸任務中跨越城市最少的人物,這樣可以盡量最小影響其他運輸任務

} ilist_flag[pos]=-

1;//cout << pos << endl;

return pos;

}int

main()

for(

int i =

0; i < q; i++

) ilist_begin[i]

= b;

ilist_end[i]

= e;

ilist_cha[i]

= e - b;

//cout << ilist_cha[i] << endl;

ilist_flag[i]=0

;}for(

int i =

0; i < q; i++

) cout << max_weight << endl;

}}

PTA 森森快遞 (30 分)

7 14 森森快遞 30 分 森森開了一家快遞公司,叫森森快遞。因為公司剛剛開張,所以業務路線很簡單,可以認為是一條直線上的n個城市,這些城市從左到右依次從0到 n 1 編號。由於道路限制,第i號城市 i 0,n 2 與第 i 1 號城市中間往返的運輸貨物重量在同一時刻不能超過c i 公斤。公司開張...

7 16 森森快遞 30 分

森森開了一家快遞公司,叫森森快遞。因為公司剛剛開張,所以業務路線很簡單,可以認為是一條直線上的n個城市,這些城市從左到右依次從0到 n 1 編號。由於道路限制,第i號城市 i 0,n 2 與第 i 1 號城市中間往返的運輸貨物重量在同一時刻不能超過c i 公斤。公司開張後很快接到了q張訂單,其中j張...

L3 017 森森快遞 (30 分

森森開了一家快遞公司,叫森森快遞。因為公司剛剛開張,所以業務路線很簡單,可以認為是一條直線上的n個城市,這些城市從左到右依次從0到 n 1 編號。由於道路限制,第i號城市 i 0,n 2 與第 i 1 號城市中間往返的運輸貨物重量在同一時刻不能超過c i 公斤。公司開張後很快接到了q張訂單,其中j張...