zoukankan      html  css  js  c++  java
  • UVA 1149 Bin Packing

    贪心

    对所有物品排序,然后从大头拿一个,检测如果加上此时最小的是否满足<=M,是的话就拿,不是的话就不拿

    注意此题的输出要求!!!

    多组样例的时候,每两组样例中要有一个空行!

    而一组样例的时候,不要输出多余的空行。(因为这个WA卡住半个小时T T,最后还是去网上搜别人代码发现的,虽然以前有的题或是OJ会忽略最后一行空行,但是还是改掉这个坏习惯好)

    AC代码

    #include <iostream>
    #include <cstdio> 
    #include <algorithm>
    #include <cstring>
    #define maxn 100000+10
    using namespace std;
    int a[maxn];
    int cmp(int a,int b){
        return a>b;
    }
    int work(int n,int m){
        int ans=0;
        int i=0,j=n-1;
        while (i<=j){
            if (a[i]+a[j]<=m&&i!=j) j--;
            i++;ans++;
        }
        return ans;
    }
    int main()
    {
        int t=0;
        int testcase;
        scanf("%d",&testcase);
        while (testcase--){
            t++;
            int n,m;
            scanf("%d%d",&n,&m);
            memset(a,0,sizeof(a));
            for (int i=0;i<n;i++) scanf("%d",&a[i]);
            sort(a,a+n,cmp);
            if(t!=1) printf("
    ");
            printf("%d
    ",work(n,m));
        }
    }
    View Code

     PS.自己一开始的贪想的有点复杂了,找最大的,然后再找当前能塞下去的最大的。这个思想的正确性我还不确定,但是仔细想想,根本不用这样贪。

  • 相关阅读:
    css3.0新属性效果在ie下的解决方案(兼容性)
    ajax实现md5加密
    ajax给全局变量赋值问题
    前端资源分享
    7件你不知道但可以用CSS做的事
    jQuery 常用效果
    ThinkPHP redirect 传参
    join和split 的使用
    JSON_FORCE_OBJECT 数字索引数组 强转对象
    layer 弹框不显示内容
  • 原文地址:https://www.cnblogs.com/acbingo/p/4073862.html
Copyright © 2011-2022 走看看