A-坐飞机
鏈接:https://ac.nowcoder.com/acm/contest/892/A
題意:
雞尾酒要去很多很多地方玩,于是他一次買了 n 張機(jī)票,初始雞尾酒在第一個(gè)城市,對于任意的i(1≤i≤n)i(1≤i≤n),第 i 張機(jī)票可以從第 i 個(gè)城市飛到第 i+1 個(gè)城市。且起飛時(shí)間和降落時(shí)間分別為ai,bi。。為了在一班飛機(jī)到站后能趕上下一班飛機(jī),雞尾酒在買機(jī)票的時(shí)候保證對于 任意的 i 和 i+1,有ai≤bi≤ai+1≤bi+1ai≤bi≤ai+1≤bi+1 但是由于不可抗力,某些飛機(jī)會(huì)晚點(diǎn)。如果對于某張機(jī)票?i(1≤i≤n)i(1≤i≤n),機(jī)票的實(shí)際降落時(shí)間ci滿足ci>ai+1ci>ai+1,雞尾酒則會(huì)認(rèn)為這是航班之間的一個(gè)弟弟配合。 所有飛機(jī)的起飛降落的時(shí)間點(diǎn)均為整數(shù)。已知所有飛機(jī)總晚點(diǎn)時(shí)間之和為 t,求最多會(huì)有多少組航班之間的弟弟配合。 對晚點(diǎn)的定義: 假如某個(gè)飛機(jī)晚點(diǎn)時(shí)間為 x,則它的起飛時(shí)間不變,降落時(shí)間延后 x思路:
貪心, 取后一班航班起飛時(shí)間和上一班航班落地時(shí)間的差值,貪心排序即可。
代碼:
#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; }
轉(zhuǎn)載于:https://www.cnblogs.com/YDDDD/p/10851263.html
總結(jié)
- 上一篇: 云计算大趋势
- 下一篇: java版spring cloud+sp