zoukankan      html  css  js  c++  java
  • noj装载问题

    描述
    有两艘船,载重量分别是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
     
    提示
    求出不超过c1的最大值max,若总重量-max < c2则能装入到两艘船。
     1 #include <stdio.h>
     2 
     3 int c1,c2,n;
     4 int w[11];
     5 int cw,bestw,r;
     6 
     7 
     8 
     9 void backtack(int i)
    10 {
    11      if(i>n)
    12      {
    13           if(cw>bestw)
    14           {
    15                bestw = cw;
    16           }
    17             return ;
    18      }
    19      r-=w[i];
    20      if(cw+w[i]<=c1)
    21 {
    22      cw+=w[i];
    23      backtack(i+1);
    24      cw-=w[i];
    25 }
    26 if(cw+r>bestw)
    27 {
    28      backtack(i+1);
    29 }
    30     r+=w[i];
    31 }
    32 
    33 int main()
    34 {
    35      while(scanf("%d%d%d",&c1,&c2,&n)!=0&&n!=0)
    36      {
    37           cw=0,bestw=0,r=0;
    38           int i;
    39           for(i=1;i<=n;i++)
    40           {
    41                scanf("%d",&w[i]);
    42                r+=w[i];
    43           }
    44           backtack(1);
    45          if(r-bestw<=c2)
    46               printf("Yes
    ");
    47          else
    48            printf("No
    ");
    49      }
    50      return 0;
    51 }
  • 相关阅读:
    关于前后端跨域问题的解决
    vue+vuex+router+element ui
    winfrom导入excel文件
    winform 导出excel文件
    winfrom DataGridView 列表操作
    LaTex之CTex初体验一
    图像配准的步骤
    Phase Based Feature Detection and Phase Congruency(相位一致性)
    查找论文中的代码
    KullbackLeibler
  • 原文地址:https://www.cnblogs.com/kmxojer/p/9941109.html
Copyright © 2011-2022 走看看