题目
https://www.luogu.org/problemnew/show/P2887
思路
这是一道比较明显的贪心题,首先我们要先明白:固定太阳强度越大的防晒霜(即防晒霜的值越大),其可以作用的牛就越少(因为牛都有一个最大承受阳光的强度)。所以,固定太阳强度越小的防晒霜能适用的牛就越多。因此,我们要尽可能的先把固定太阳强度越大的防晒霜用掉去,这样就能保证更多的牛能够享受阳光。
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int ans;
struct cow{
int l,r;
}
ox[5000];
struct sunscreen{
int n,s;
}
bb[5000];
bool com(cow x,cow y)
{
{
if(x.r<y.r) return true;
return false;
}
}
bool comp(sunscreen a,sunscreen b)
{
if(a.n<b.n)
return true;
return false;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d %d",&ox[i].l,&ox[i].r);
for(int i=1;i<=m;i++)
scanf("%d %d",&bb[i].n,&bb[i].s);
sort(ox+1,ox+1+n,com);
sort(bb+1,bb+m+1,comp);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(bb[j].n>=ox[i].l&&bb[j].n<=ox[i].r&&bb[j].s)
{
bb[j].s--;ans++;
break;
}
}
printf("%d",ans);
}