高质量题解|A22674.混合牛奶
2026-02-09 16:55:38
发布于:河北
1阅读
0回复
0点赞
解题思路
重要的考点就在于贪心和结构体
结构体的元素我们想一想就知道是能卖的钱和需求量
我们需要让农民获利最大,就需要尽可能获得钱最多,所以 cmp 比较 a.p 和 b.p
但是还要考虑一个可能,那就是需求的总数一定要小于我们赚的钱数
代码
#include <bits/stdc++.h>
using namespace std;
struct fm{
int p,a;
}a[200001];
bool cmp(fm a,fm b){
if(a.p != b.p){
return a.p < b.p;
}
}
int main(){
int n,m,ans = 0;
cin >> n >> m;
for(int i = 1;i <= m;i++){
cin >> a[i].p >> a[i].a;
}
sort(a + 1,a + m + 1,cmp);
for(int i = 1;i <= m;i++){
if(a[i].a >= n){
ans += n * a[i].p;
cout << ans;
return 0;
}
ans += a[i].a * a[i].p;
n -= a[i].a;
}
return 0;
}
这里空空如也








有帮助,赞一个