CK005[贪心]-加勒比海盗船-最优装载问题

代码骑士
优质创作者: 游戏开发技术领域
2023-01-03 14:15:53

一、问题描述 

二、问题重述

三、问题分析

 

 

四、算法设计

 

伪代码

 

真代码

#include<stdio.h>
#include<algorithm>

int main()
{
	int c=100;//船载重量 
	int w[10]={10,20,35,50,18,17,26,9,8,1};//古董重量数组 
	//sort : 1,8,9,10,17,18,20,26,35,50,
	std::sort(w,w+10);//默认将w数组按从小到大排序 
	int sum,n=0;//最大数量
	for(int i=0;i<10;i++)
	{
		if(sum>c) break;
		sum+=w[i];
		n++;
		printf("sum=%d,count=%d\n",sum,n);
	}
	printf("最大装载数量是:%d",n-1);
	return 0;
} 

输出结果:

 更换测试用例

C=30

w[8] = {4,10,7,11,3,5,14,2}

 代码:

#include<stdio.h>
#include<algorithm>

int main()
{
	int c=30;//船载重量 
	int w[8]={4,10,7,11,3,5,14,2};//古董重量数组 
	//sort : 2,3,4,5,7,10,11,14
	std::sort(w,w+8);//默认将w数组按从小到大排序 
	int sum,n=0;//最大数量
	for(int i=0;i<8;i++)
	{
		if(sum>c) break;
		sum+=w[i];
		n++;
		printf("sum=%d,count=%d\n",sum,n);
	}
	printf("最大装载数量是:%d",n-1);
	return 0;
} 

输出结果:

 

 

 

...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码骑士 2023-01-04
  • 打赏
  • 举报
回复

分类:0-1背包问题

代码骑士 2023-01-03
  • 打赏
  • 举报
回复

代码问题已修正:https://bbs.csdn.net/topics/611615793

5

社区成员

发帖
与我相关
我的任务
社区描述
考研408:数据结构、计算机组成原理、操作系统、计算机网络
学习方法考研面试 其他
社区管理员
  • 代码骑士
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧