贪心算法-最优装载(C语言)
本文最后更新于192 天前,其中的信息可能已经过时,如有错误请发送邮件到1729915388@qq.com

问题描述:某艘船的载重量为C,每件物品的重量为wi,要将尽量多的物品装入到船上。

#include<stdio.h>
#define N 100
void Insertion_Sort(int *a,int n){
	int i = 0;
	for(i = 0; i < n-1; i++)
	{
		int M = i;
		int num = a[i + 1];
		while(M >= 0)
		{
			if(num < a[M])
			{
				a[M + 1] = a[M];
				M--;
			}
			else
			{
				break;
			}
		}
		a[M + 1] = num;
	}
}
int main()
{
    int w[N];
	int c,n;//c:载重量,n古董数
	int sum = n;//装入古董的数量
	int tmp = 0;//装入古董的重量
	scanf("%d %d",&c,&n);
	for(int i=0; i < n; i++)
		scanf("%d",&w[i]);
	Insertion_Sort(w,n);
	for(int i = 0; i < n; ++i)
	{
		tmp += w[i];//这个要在if外面
		if(tmp >= c)
		{
			if(tmp == c)//最后一个能装进去
				sum = i+1;
			else
				sum = i;//最后一个不能装进去
			break;
		}
		//其余的情况是tmp<c,此时sum肯定等于n
	}
	printf("%d",sum);
	return 0;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇