洛谷P1315 觀光公交

2022-09-20 13:21:15 字數 936 閱讀 2569

新增注釋小能手上線。

貪心注意:

1.本站使用加速器可能對後續站產生影響

2.若本站車等人,使用加速器也可使這一站下車的人提前下車,優化結果

3.若有剩餘加速器,則一律用在n-1到n站之間

1 #include2

#define ff(s,e) for(int i=s;i<=e;i++)

3using

namespace

std;

4 inline int

read()

10while(ch>='

0'&&ch<='9'

)14return x*f;15}

16const

int n=100000;17

intn,m,k;

18int

dis[n],last[n],g[n],enter[n],sum[n];

19//

i->i+1時間 乘客i站到齊時間 i站時間影響到g[i]站 i站到達時間 i站影響人數;

20int

ans,maxx;

21struct

qwqa[n];

24int

main()

32 enter[1]=last[1

];33 ff(1

,n)36 ff(2

,n)39 ff(1

,m)42

for(;k>0;k--)

50 ff(1,n-1

)56 ans-=maxx;

57 dis[tar]--;

58 ff(2

,n)61

}62 printf("%d"

,ans);

63return0;

64 }

洛谷P1315 觀光公交

題目 模擬 貪心 一開始看到10 5的資料,以為要klogn就敲了個線段樹上去 結果沒考慮後效性,只過了3個點 正解 一開始先處理出每一站的到站時間是對的,而隨著修改到站時間的改變不一定滿足字首關係 假設在某一站有人很晚才出發,那不管先前改變了多少後面的到站時間都是不變的 綜上 還需要維護修改一段距...

洛谷P1315 觀光公交

題目 如果沒有氮氣加速器,則該題為乙個模擬題。但是本題存在氮氣加速器,所以我們需要考慮貪心策略。題目要求我們使所有人等待的時間最短,因此我們需要算出每段路徑 路徑即為車站之間的 d 對時間的貢獻多少,取其中最多的減去就好了。首先我們需要求出每個車站最遠向右影響到什麼地方,然後算出這段地方的影響總人數...

洛谷P1315 觀光公交

風景迷人的小城y 市,擁有n 個美麗的景點。由於慕名而來的遊客越來越多,y 市特意安排了一輛觀光公交車,為遊客提供更便捷的交通服務。觀光公交車在第 0 分鐘出現在 1號景點,隨後依次前往 2 3 4 n 號景點。從第 i 號景點開到第 i 1 號景點需要 di 分鐘。任意時刻,公交車只能往前開,或在...