贪心算法时间效率更高
2025-07-08 10:46:33
发布于:上海
33阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct info{
int piece;
int weight;
int num;
double everypiece;
};
bool cmp(info a,info b){
return a.everypiece>b.everypiece;
}
int main(){
int n,total,ans=0,now=0;
cin>>n>>total;
info box[n];
for(int i=0;i<n;i++){
cin>>box[i].piece>>box[i].weight>>box[i].num;
box[i].everypiece=box[i].piece1.000/box[i].weight;
}
sort(box,box+n,cmp);
for(int i=0;i<n&&now<total;i++){
int maxTake=min(box[i].num,(total-now)/box[i].weight);
if(maxTake>0){
ans+=box[i].piecemaxTake;
now+=box[i].weight*maxTake;
}
}
cout<<ans;
}
全部评论 1
沙老师,你程序放进去测试显示编译错误,我帮你改了一下,要看的话可以去我主页看我的新帖子
2025-07-17 来自 上海
0
有帮助,赞一个