NOIP2011 觀光公交

2022-08-04 20:06:18 字數 545 閱讀 5896

傳送門

貪心f[i]表示在i號點使用加速器,能使後面多少個點受益

sum[i]表示在i站及i站以前有多少人下車

找出在哪個站使用加速器最多能使多少人受益

貪心k次即可

#include#include#include#include#include#include#define ll long long

#define n 10100

using namespace std;

int f[n],sum[n],last[n],a[n],b[n],t[n],d[n],ar[n];

int gi()

int main()

int x,y=0;

for(int i=1; iy)

}d[x]--;

} for(int i=2; i<=n; i++)

for(int i=1; i<=m; i++)

printf("%lld\n", ans);

return 0;

}

NOIP2011 觀光公交

題目 分析 設last i 表示來到第i個景點的乘客最晚的時間,time i 表示車到達第i個景點的最小時間。因為每個乘客到達的時間已經固定,所以要使總時間最小,就是使 time down i 最小,其中down i 代表每位乘客的目的地。先考慮不用加速器的情況。可以直接遞推求出答案,time i ...

NOIP2011 觀光公交

傳送門 luogu 有點麻煩,幸好 o n 2 能過。貪心地想一想,我們如果要用加速器,肯定是要選擇車上人數最多的時段加速。但是我們就會面臨這樣的情況 那麼我們就分類討論一下,預處理一些東西 每個站的下車人數,需要更新的車到站時間,每個站的最後乙個下車人數。然後隨便搞一下就好了。include in...

NOIP2011 觀光公交

這是乙個貪心,說實話開始做的時候.完全沒看出來qaq。首先對於每個點當然是能走就走,不能走就等待,這是無法控制的。所以只考慮氮氣加速器加在 可以使時間總和盡量少。如果選擇加速,可能會使後面等待的時間更長,或者更短,對後面都會有影響。但是沿著一條邊加速會影響後面的所有邊麼?這可不一定 來來來,我們分類...