A-坐飞机
鏈接:https://ac.nowcoder.com/acm/contest/892/A
題意:
雞尾酒要去很多很多地方玩,于是他一次買了 n 張機票,初始雞尾酒在第一個城市,對于任意的i(1≤i≤n)i(1≤i≤n),第 i 張機票可以從第 i 個城市飛到第 i+1 個城市。且起飛時間和降落時間分別為ai,bi。。為了在一班飛機到站后能趕上下一班飛機,雞尾酒在買機票的時候保證對于 任意的 i 和 i+1,有ai≤bi≤ai+1≤bi+1ai≤bi≤ai+1≤bi+1 但是由于不可抗力,某些飛機會晚點。如果對于某張機票?i(1≤i≤n)i(1≤i≤n),機票的實際降落時間ci滿足ci>ai+1ci>ai+1,雞尾酒則會認為這是航班之間的一個弟弟配合。 所有飛機的起飛降落的時間點均為整數。已知所有飛機總晚點時間之和為 t,求最多會有多少組航班之間的弟弟配合。 對晚點的定義: 假如某個飛機晚點時間為 x,則它的起飛時間不變,降落時間延后 x思路:
貪心, 取后一班航班起飛時間和上一班航班落地時間的差值,貪心排序即可。
代碼:
#include <bits/stdc++.h> using namespace std;typedef long long LL;const int MAXN = 1e5+10; int Up[MAXN], Down[MAXN];int main() {int n, t;cin >> n >> t;for (int i = 1;i <= n;i++)cin >> Up[i] >> Down[i];vector<int> time;for (int i = 2;i <= n;i++)time.push_back(Up[i]-Down[i-1]+1);sort(time.begin(), time.end());int res = 0;for (int i = 0;i < time.size();i++){if (t >= time[i])res++, t -= time[i];elsebreak;}cout << res << endl;return 0; }
轉載于:https://www.cnblogs.com/YDDDD/p/10851263.html
總結
- 上一篇: 云计算大趋势
- 下一篇: Linux 开机文件系统发生错误