金银岛(贪心算法实操)

编程入门 行业动态 更新时间:2024-10-28 18:24:29

<a href=https://www.elefans.com/category/jswz/34/1679211.html style=金银岛(贪心算法实操)"/>

金银岛(贪心算法实操)

题目

 解答

#include <stdio.h>
#include <stdlib.h>
struct Kuangshi {int weight;int money;double danjia;
};
int cmp(const void *a, const void *b) {struct Kuangshi *aa = (struct Kuangshi *)a;struct Kuangshi *bb = (struct Kuangshi *)b;return (((aa->danjia) < (bb->danjia)) ? 1 : -1);
}
int main() {int k, w, s;int i, j;double Output[100];scanf("%d", &k);			//组数for ( i = 0; i < k; i++) {scanf("%d", &w);		//口袋上限scanf("%d", &s);		//矿石种类Kuangshi kuangshi[s];for ( j = 0; j < s; j++) {	//录入scanf("%d %d", &kuangshi[j].weight, &kuangshi[j].money);kuangshi[j].danjia = (double)kuangshi[j].money / (double)kuangshi[j].weight;}qsort(kuangshi, s, sizeof(kuangshi[0]), cmp); //从大到小排序int shengyu = w;			//剩余空间j = 0;Output[i]=0;do {shengyu -= kuangshi[j].weight;if(shengyu<0){Output[i]=Output[i]+(shengyu+kuangshi[j].weight)*kuangshi[j].danjia;}else	Output[i] += kuangshi[j].money;j++;} while (shengyu > 0&&j<s);}for(int i=0;i<k;i++){printf("%.2lf\n",Output[i]);}return 0;
}

更多推荐

金银岛(贪心算法实操)

本文发布于:2024-02-11 04:49:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679206.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:金银岛   贪心   算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!