问题标题: 酷町堂:2605 牛奶收购

0
0
蔡俊豪
蔡俊豪
高级守护
高级守护

题目链接: 酷町堂:2605

没有思路随便写的:

#include<iostream>

#include<algorithm>

/*

**制品供应商每月都要去牧场上,从牧民那里收购一定量的新鲜牛奶。

不同的农民可以供应的牛奶的量和价格都不一样。

牛奶企业现在想在收购的牛奶在恰好满足自己需求的基**上,所花费用尽可能少。

请你计算最少的花费是多少。

*/

 

using namespace std;

struct stu{

long long x,y;

}a[5005];

bool cmp(stu a,stu b){

return a.x<b.x;

}

long long n,m,sum;

int main(){

cin>>n>>m;

for(int i=1;i<=m;i++){

cin>>a[i].x>>a[i].y;

}

sort(a+1,a+n+1,cmp);

for(int i=1;i<=n;i++){

if(a[i].x*a[i].y<=n){

sum+=a[i].x*a[i].y;

n-=a[i].x*a[i].y;

}else{

sum+=n*1.0/a[i].x;

break;

}

}

cout<<sum;

    return 0;

}

最起码和贪心沾上边了

 

 

求思路


1
张皓然
张皓然
中级光能
中级光能

有洛谷吗,洛谷发你代码

0
程安琪
程安琪
资深守护
资深守护

for循环从1到m,还有判断条件应该是if(n==0)    break;
    int x=min(n,a[i].y);
    ans+=x*a[i].x;
    n-=x;

望采纳!!!谢谢!!

我要回答