Advertisement

两船装箱问题的贪心算法和回溯法

阅读量:

来自 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)

还没有任何评论哟~