1 条题解
-
0
#include<iostream> #include<algorithm> #define x first #define y second using namespace std; typedef pair<int,int>PII; const int N = 2510; PII a[N],b[N]; int n,m; int main() { cin>>n>>m; for(int i=0;i<n;i++) cin>>b[i].x>>b[i].y; for(int i=0;i<m;i++) cin>>a[i].x>>a[i].y; sort(a,a+m);sort(b,b+n); int ans=0; for(int i=n-1;i>=0;i--) for(int j=m-1;j>=0;j--) if(b[i].x<=a[j].x && a[j].x<=b[i].y && a[j].y) { ans++; a[j].y--; break; } cout<<ans<<endl; return 0; }
对防晒霜按 SPF 升序排序,每次处理当前防晒霜,就将所有 SPF 小于等于该 SPF 值的牛入队,此时入队的牛也是其后处理的防晒霜的可能涂抹对象。为了使防晒的牛数量最大,当前处理的防晒霜选择优先队列中 SPF 最大值最小的牛进行涂抹。
- 1
信息
- ID
- 2615
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者