zoukankan      html  css  js  c++  java
  • Codeforces #252 (Div. 2) B. Valera and Fruits

    题目倒是不难,可是读起来非常恶心

    依据题目的描写叙述不easy找到适合存储的方法

    后来我就想不跟着出题人的思路走

    我自己开一个数组c

    令c[a[i]] = b[i]

    则c[i] == [j] 代表第i天相应有j个果子成熟

    接着用贪心的方法做就好了

    当前天尽可能收取昨天的果子。在收完的情况下再考虑今天的果子

    代码例如以下:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #define MAXN 10010
    #define ll long long
    using namespace std;
    
    int c[MAXN];
    int a, b;
    ll t, v, n, ans;
    
    void f(int i) {
        
        if(c[i] && t) {
            if(c[i] > t) {
                ans += t;
                c[i] -= t;
                t = 0;
            }
            else {
                ans += c[i];
                t -= c[i];
                c[i] = 0;
            }
        }
    }
    
    int main(void) {
        
        while(cin >> n >> v) {
            ans = 0;
            for(int i=1; i<=n; ++i) {
                cin >> a >> b;
                c[a] += b;
            }
            for(int i=1; i<3005; ++i) {
                t = v;
                f(i-1);
                f(i);
               // f(i+1);
            }
            cout << ans << endl;
        }
        return 0;
    }

  • 相关阅读:
    CentOS 添加sudo 用户
    CentOS 7 Hostname
    Java 两线程交替打印奇偶数(一)
    Angular2 Forms
    Built-in Components
    How Angular Works
    数字签名算法
    不对称加密算法
    对称加密算法
    消息摘要算法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5070859.html
Copyright © 2011-2022 走看看