傳送門
首先我們要把加速器乙個乙個的用,用在什麼地方呢。假設當前站車比人晚到,那麼車上的人與等待的人都會受到影響;否則的話只有在當前站下車的人有影響。我們第一步先求出車到站的時間,對於一條路來說,如果人等車,那麼在這條路用加速器的效果可以繼續向後延伸。否則只會對下一站造成影響。這樣的話維護乙個陣列\(rang\),表示影響的範圍,然後對人求乙個字首和,每次取乙個最大的進行更新。時間複雜度\(o(n*k)\)。
#include#include#include#include#includeusing namespace std;
const int maxn = 100005;
const int inf = 0x3f3f3f3f;
inline int rd()
while(isdigit(ch))
return f?x:-x;
}int n,m,k,d[maxn],numw[maxn],ar[maxn],lst[maxn],sum[maxn];
int ans,rang[maxn];
struct datadata[maxn];
int main()
if(!max) break;
d[p]--;ans-=max;
ar[0]=0;
for(int i=1;i} printf("%d\n",ans);
return 0;
}
luogu P1315 觀光公交
比較難的貪心!預處理很多東西,另外,寫注釋好像有點用!可能是心理作用?反正還是寫得挺順利的?include include define ri register int define u int namespace opt while s 0 s 9 return x f using opt in ...
P1315 觀光公交
風景迷人的小城y 市,擁有n 個美麗的景點。由於慕名而來的遊客越來越多,y 市特意安排了一輛觀光公交車,為遊客提供更便捷的交通服務。觀光公交車在第 0 分鐘出現在 1號景點,隨後依次前往 2 3 4 n 號景點。從第 i 號景點開到第 i 1 號景點需要 di 分鐘。任意時刻,公交車只能往前開,或在...
luogu1315 觀光公交
乙個公交車在一條線上從1站 2站走到n站,站站間有距離。另有m個乘客在時間點t在a站等候要到b站。對於乙個站,如果車比人早到,則車等人,如果人比車早到,則人等車 我一開始做題時把這個情況當作已知不可能發生了55555 另外有d個空間瞬移器,使得汽車在0秒內前進乙個單位距離。站與站間可重複用空間瞬移器...