混合牛奶 Mixing Milk
题意
输出Marry 的牛奶制造公司拿到所需的牛奶所要的最小费用。
思路
- 这题应使用结构体+布尔函数判断来解决
- 在结构体中定义牛奶的单价与产量
- 运用sort函数和贪心在主函数中进行运算,最后输出结果
实现步骤
- 先定义一个结构体cow,布尔函数进行判断所定义的两个值
- 主函数中对所需值进行输入输出后,用sort函数进行排序
- 输出结果
代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
struct cow{
int danjia;
int chan;
}a[N];
bool cmp(cow x,cow y)
{
if(x.danjia!=y.danjia)
{
return x.danjia<y.danjia;
}
else return x.chan>y.chan;
}
int main(){
int n,m;
cin>>n>>m;
int ans=0;
for(int i=1;i<=m;i++)
{
cin>>a[i].danjia>>a[i].chan;
}
sort(a+1,a+m+1,cmp);
int i=1;
while(n)
{
if(a[i].chan!=0)
{
a[i].chan--;
ans+=a[i].danjia;
n--;
}
else i++;
}
cout<<ans;
return 0;
}
总结
结构体和贪心的综合使用