zoukankan      html  css  js  c++  java
  • 装载问题【回溯法】

    问题描述

    有一批共 nn 个集装箱要装上艘载重量为 cc 的轮船,其中集装箱 ii 的重量为 wiwi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。

    输入格式

    第一行有 2 个正整数 nn 和 cc。 nn 是集装箱数,cc 是轮船的载重量。接下来的 1 行中有 nn 个正整数,表示集装箱的重量。

    输出格式

    一行,1 个整数,即最大装载重量。

    样例一

    input

    5 10
    7 2 6 5 4
    

    output

    10
    

    数据范围与约定

    时间限制: 1s1s

    内存限制: 256MB

     时间原因......以后补上题解,凑合着看......

    我才不会说我不会

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int maxx;
     4 int ans;
     5 int n,c;
     6 int sz[10000];
     7 void ss(int i,int k=0){
     8     if(maxx>c) return ;
     9     if(k==i+1) {
    10         ans=max(ans,maxx);
    11         return ;
    12     } 
    13     if(maxx+sz[k]<=c){
    14         maxx+=sz[k];
    15         ss(i,k+1);
    16         maxx-=sz[k];
    17     }
    18     ss(i,k+1);
    19 }
    20 int main(){
    21     cin>>n>>c;
    22     for(int i=1;i<=n;i++){
    23         cin>>sz[i];
    24     }
    25     sort(sz+1,sz+n+1);
    26     ss(n);
    27     cout<<ans;
    28     return 0;
    29 }
  • 相关阅读:
    Exection throws和throw
    Exection(二)
    JAVA-Exception
    IDEA初见---输出HelloWorld,并打包成jar包
    Centos6.5安装Tomcat
    Centos6.5下装ZooKeeper
    LInux下装jdk
    python作业高级FTP
    tcp黏包
    计算器
  • 原文地址:https://www.cnblogs.com/luv-letters/p/8550854.html
Copyright © 2011-2022 走看看