混合牛奶(贪心)
思路:
典型的贪心,即:对于每一个m的取值,我们都采用一个当前最优化的代价,从而达到总体最优化。
CODE:
#include<iostream>
#include<algorithm>
#include<map>
#define ll long long
#define x first
#define y second
#define INF 0x3f3f3f3f
using namespace std;
pair<ll,ll> a[2001000];
ll n,m,ans;
int main()
{
ios::sync_with_stdio(false);
cin >> m >> n;
for(int i = 1;i <= n;++i)
{
cin >> a[i].x >> a[i].y;
}
sort(a + 1,a + 1 + n);
for(int i = 1;;++i)
{
if(m > a[i].y)
{
ans += a[i].y * a[i].x;
m -= a[i].y;
}
else if(m <= a[i].y)
{
ans += m * a[i].x;
break;
}
}
cout << ans << endl;
return 0;
}
Thanks for your watching,hope this blog can help you.