贪心,每一个物品运到家的花费是单价+运费
#include<stdio.h>
#include<algorithm>
using namespace std;
#define inf 1000
struct node
{
int len,tot,mon,act;
}edge[inf];
int cmp(node a,node b)
{
return a.act<b.act;
}
int k,e,n;
int main()
{
scanf("%d %d %d",&k,&e,&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d %d",&edge[i].len,&edge[i].tot,&edge[i].mon);
edge[i].len=abs(edge[i].len-e);
edge[i].act=edge[i].len+edge[i].mon;
}
sort(edge+1,edge+1+n,cmp);
int ans=0;
for(int i=1;i<=n;i++)
{
ans+=edge[i].act*min(k,edge[i].tot);
if(k-edge[i].tot>0)
{
k-=edge[i].tot;
}else
{
break;
}
}
printf("%d",ans);
}
本文讨论了使用贪心算法解决物品运输问题的方法,包括定义问题、算法实现及应用实例。通过将每件物品的运输成本分解为单价和运费两部分,采用贪心策略选择最优运输方案。

756

被折叠的 条评论
为什么被折叠?



