POJ 3614 Sunscreen

题目地址: http://poj.org/problem?id=3614

采用贪心策略,先将cow按minspf值递增排序,即优先考虑minspf更小的牛

再将防嗮霜按spf值递增排序

#include<iostream>
#include<algorithm>
using namespace std;
//先将cow按minspf值递增排序,即优先考虑minspf更小的牛
//在将防嗮霜按spf值递增排序
// 
struct Cow{
    int minSpf;
    int maxSpf;
    friend bool operator <(Cow a,Cow b){
        return a.minSpf>b.minSpf;
    }
}cow[2500+10];
struct Slotion{
    int num;
    int spf;
    friend bool operator<(Slotion a,Slotion b){
        return a.spf>b.spf;
    }
}slot[2500+10];
int c,l;
int main(){
    int i,j;
    cin>>c>>l;
    for(i=0;i<c;i++)
    {
        cin>>cow[i].minSpf>>cow[i].maxSpf;
    }
    for(j=0;j<l;j++)
    {
        cin>>slot[j].spf>>slot[j].num; 
    }
    sort(cow,cow+c);
    sort(slot,slot+l);
    int ans=0;
    for(i=0;i<c;i++)
    {
        for(j=0;j<l;j++)
        {
            if(slot[j].num>0&&slot[j].spf>=cow[i].minSpf&&slot[j].spf<=cow[i].maxSpf)
            {
                slot[j].num--;
                ans++;
                break;
            }
                
        }
    }
    cout<<ans<<endl;
    return 0;
} 

猜你喜欢

转载自www.cnblogs.com/-xinxin/p/10485347.html