牛客假日团队赛2 A.买一送一
生活随笔
收集整理的這篇文章主要介紹了
牛客假日团队赛2 A.买一送一
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
鏈接:
https://ac.nowcoder.com/acm/contest/924/A
題意:
Farmer John在網(wǎng)上買干草。他發(fā)現(xiàn)了一筆特殊的買賣。他每買一捆大小為A(1 <= A <= 1,000,000)的干草,他就能免費(fèi)獲得一捆大小為B(1 <= B < A)的干草!
然而,這筆交易是有規(guī)定的:大的一捆干草必須是高質(zhì)量的,小的一捆是低質(zhì)量的。FJ是個(gè)吝嗇鬼,他并不在意:隨便什么質(zhì)量,只要能省錢就好。
給出一組N(1 <= N <= 10,000)捆高質(zhì)量干草的大小,M(1 <= M <= 10,000)捆低質(zhì)量的干草的大小,找出Farmer John最多能買多少捆干草。他能買高質(zhì)量的干草而不拿免費(fèi)的低質(zhì)量干草,但他不能買低質(zhì)量的干草(就是說,他只能通過增送來獲得)。
思路:
將兩捆草排序,從小到大買,同時(shí)判斷贈(zèng)品的當(dāng)前最小能不能得到,能得到就更新最小。
因?yàn)樾〉馁?zèng)品優(yōu)先給小的購買用。
代碼:
#include<bits/stdc++.h>using namespace std; const int maxn = 2e5 + 10;int a[maxn],b[maxn]; int main() {int n,m;cin>>n>>m;for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);for(int i=0;i<m;i++)cin>>b[i];sort(b,b+m);int cnt = 0;for (int i = 0;i < n;i++){if (cnt < m && b[cnt]<a[i])cnt++;}cout << n+cnt << endl;return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/YDDDD/p/11037608.html
總結(jié)
以上是生活随笔為你收集整理的牛客假日团队赛2 A.买一送一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态页面加载速度太慢
- 下一篇: 使用C#实现Windows下无焦点窗体