日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sunscreen

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sunscreen 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:牛客網

Sunscreen

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 32768K,其他語言65536K
64bit IO Format: %lld

題目描述

To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500)
cows must cover her hide with sunscreen when they’re at the beach. Cow
i has a minimum and maximum SPF rating (1 ≤ minSPFi ≤ 1,000; minSPFi ≤
maxSPFi ≤ 1,000) that will work. If the SPF rating is too low, the cow
suffers sunburn; if the SPF rating is too high, the cow doesn’t tan at
all… The cows have a picnic basket with L (1 ≤ L ≤ 2500)
bottles of sunscreen lotion, each bottle i with an SPF rating SPFi (1
≤ SPFi ≤ 1,000). Lotion bottle i can cover coveri cows with lotion. A
cow may lotion from only one bottle. What is the maximum number of
cows that can protect themselves while tanning given the available
lotions?

輸入描述:

  • Line 1: Two space-separated integers: C and L
  • Lines 2…C+1: Line i describes cow i’s lotion requires with two integers: minSPFi and maxSPFi
  • Lines C+2…C+L+1: Line i+C+1 describes a sunscreen lotion bottle i with space-separated integers: SPFi and coveri 輸出描述: A single line
    with an integer that is the maximum number of cows that can be
    protected while tanning

示例1
輸入

3 2 3 10 2 5 1 5 6 2 4 1

輸出

2

題解:
每個牛所需要的的乳液都在它規定的范圍內
我們可以將乳液從小到大排序
將牛的最小需求從小到大排
我們先將牛的最小需求根乳液比較,如果乳液大于最小需求,就存入優先隊列里,(優先隊列從小到大排),然后再一次比較當前乳液與隊列里牛的最大需求,(凡是在隊列里的牛,最小需求一定小于乳液,所以只需比較最大需求是否大于)
隊列為什么是從小到大排,因為最大需求越小,說明它要達成的條件越苛刻,先把難搞的搞定剩下的好說
代碼:

#include <bits/stdc++.h> using namespace std; const int maxn=2520; int cnt=1, sum; struct node{int first;int second; }cow[maxn]; struct node1{int num;int SPF; }b[maxn]; bool cmp1(node a,node b) {return a.second < b.second; } bool cmp2(node1 a,node1 b) {return a.SPF < b.SPF; }template<class T>inline void read(T &res) { char c;T flag=1; while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;res=c-'0'; while((c=getchar())>='0'&&c<='9')res=res*10+c-'0';res*=flag; } priority_queue<int, vector<int>, greater<int> > q; int main() {int c, l;cin >> c >> l;for (int i = 1; i <= c; i++) read(cow[i].second),read(cow[i].first) ;for (int i = 1; i <=l; i++)read(b[i].SPF),read(b[i].num);sort(cow+1, cow + c +1, cmp1);sort(b+1, b + l +1, cmp2);for (int i = 1; i <= l; i++){while ( cow[cnt].second <= b[i].SPF&&cnt <= c) {q.push(cow[cnt].first);cnt++;}while (!q.empty() && b[i].num>=0) {int x; x = q.top();q.pop();if (x >= b[i].SPF) {b[i].num--;sum++;}}}cout << sum << endl;return 0; }

總結

以上是生活随笔為你收集整理的Sunscreen的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。