zoukankan      html  css  js  c++  java
  • UVA-1149 Bin Packing (贪心)

    题目大意:给定n个物品的重量,无限个容量为m的箱子,每个箱子最多装两个物品,要把所有的物品都装下,最少需要多少个箱子。

    题目分析:贪心策略:每次将最重和最轻的两个物品放到一个箱子里,如果装不下,则将最重的单独装到一个箱子里。

    代码如下:

    # include<iostream>
    # include<cstdio>
    # include<cstring>
    # include<algorithm>
    using namespace std;
    
    int a[100005];
    
    int solve(int n,int m)
    {
        int l=0,r=n-1,ans=0;
        while(l<=r){
            if(a[l]+a[r]<=m)
                ++l,--r;
            else
                --r;
            ++ans;
        }
        return ans;
    }
    
    int main()
    {
        int T,n,m;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&m);
            for(int i=0;i<n;++i)
                scanf("%d",a+i);
            sort(a,a+n);
    
            printf("%d
    ",solve(n,m));
            if(T)
                printf("
    ");
        }
        return 0;
    }
    

      

  • 相关阅读:
    git 命令
    Spring Boot Web应用开发 CORS 跨域请求支持
    layui demo
    jQuery jqGrid 4.7
    jQurey zTree Demo 3.5
    jQurey zTree API 3.5
    jQurey Select2 4.0
    jQurey Validation 1.16
    Laytpl 1.2
    My97DatePicker 4.8
  • 原文地址:https://www.cnblogs.com/20143605--pcx/p/4868294.html
Copyright © 2011-2022 走看看