题意:
某厂需收购m升牛奶,可从n 户农场主获得;现给出各农场主最最大供奶量和单价,求该厂的最小成本
题解:
1.贪心 用结构体存储,按单价升序排序,依次收购直到牛奶量达到标准。
/*
ID:jsntrdy1
PROG: milk
LANG: C++
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#include<fstream>
#include<algorithm>
const int N=5010;
struct node
{
int price;
int amount;
}farmers[N];
using namespace std;
ifstream fin("milk.in");
ofstream fout("milk.out");
bool cmp(node a,node b)
{
return a.price<b.price;
}
int main()
{
int n,m;
fin>>m>>n;
for(int i=0;i<n;i++)
{
fin>>farmers[i].price>>farmers[i].amount;
}
sort(farmers,farmers+n,cmp);
int sum=0;
int money=0;
for(int i=0;i<n;i++)
{
if(sum>=m)
break;
sum+=farmers[i].amount;
if(sum<=m)
money+=farmers[i].amount*farmers[i].price;
else
{
int sum0=sum-farmers[i].amount;
money+=(m-sum0)*farmers[i].price;
}
}
fout<<money<<endl;
return 0;
}