两船装箱问题的贪心算法和回溯法
发布时间
阅读量:
阅读量
来自 xxm137164869
描述:
存在两艘船只,其最大载重分别为c1与c2,共有n个集装箱,每个集装箱的重量为wi(i=1…n),且所有集装箱的总重量不超过c1与c2之和。需要判断是否可以将所有集装箱全部装载到这两艘船上。
输入:
包含多个测试案例,每个案例的输入占据两行。第一行依次给出c1、c2以及n(n<=10);第二行则为n个整数,代表wi(i=1…n)。当n等于0时,表示输入结束。
输出:
针对每一个测试案例,在单独的一行中输出Yes或No。
输入样例:
7 8 2
8 7
7 9 2
8 8
0 0 0
输出样例:
Yes
No
解题思路: 在装载集装箱时,应尽可能多地装入货物。每次选择一个集装箱后,将其与两艘船当前剩余容量进行比较,并将其放入剩余容量较大的那艘船上,从而确保后续能够容纳更多的集装箱。
代码如下:
01.#include<iostream>
02.using namespace std;
03.int main()
04.{
05. int c1,c2,n;
06. while(1)
07. {
08. int state
全部评论 (0)
还没有任何评论哟~
