zoukankan      html  css  js  c++  java
  • P1478

      昨天花一下午时间,把 codeblocks 代码 highlight 改了改,感觉还不错 :)

      咳咳。还是说题吧。

      这道题利用贪心思想,先去除所有够不着的,然后按使用力气 $ y_i $ 从小到大排序,然后一个一个取就行了。

      AC代码(还没AC。。不知道为什么有一个点WA,一个点RE 原因是 N 太小,至少大于5000。):

    #include <bits/stdc++.h>
    using namespace std;
    #define rep(i, a, b) for(int i = a; i < b; i++)
    #define min(a, b) ((a) < (b) ? (a) : (b))
    #define max(a, b) ((a) > (b) ? (a) : (b))
    #define index(a) (a - 'A')
    #define transUpp(a) (a - 32)
    #define transLow(a) (a + 32)
    #define ll long long
    #define PB push_back
    int gcd(int a, int b){return b == 0 ? a : gcd(a%b, a);}
    const int N = 782;
    int y[N];
    int main(int n, char**args)
    {
        int apples, power, th, len, a, b, j = 1;
        cin >> apples >> power >> th >> len;
        y[0] = 0;
        for (int i = 1; i <= apples; i++)
        {
            cin >> a >> b;
            if (th + len >= a) // 够不着的不要
            {
                y[j] = b;
                int k = j - 1, w = y[j];
                while (k > 0 && w < y[k]) // 插排
                {
                    y[k + 1] = y[k];
                    k -= 1;
                }
                y[k + 1] = w;
                j += 1;
            }
        }
        n = 0;
        for (int i = 1; i < j; i++)
            if (power >= y[i])
                power -= y[i], n += 1;
        cout << n << endl;
        return 0;
    }
    

      

  • 相关阅读:
    BZOJ2303:[APIO2011]方格染色(并查集)
    BZOJ1116:[POI2008]CLO(并查集)
    BZOJ4011:[HNOI2015]落忆枫音(DP,拓扑排序)
    洛谷1387 最大正方形
    洛谷 P1858 多人背包
    vijos 1085 Sunnypig闯三角关
    vijos 1030 重叠的方框
    codevs 1001 舒适的路线 WK
    1266. [NOIP2012] 借教室
    codevs 2370 小机房的树
  • 原文地址:https://www.cnblogs.com/darkchii/p/9651928.html
Copyright © 2011-2022 走看看