• [ABC123D] Cake 123


    [ABC123D] Cake 123

    题意:给(n,m,k)三个数代表三种蛋糕价格种类,然后分别要三种都买一个蛋糕,然后给(d)求前(d)贵的蛋糕价格。
    题解:没大懂,就是暴力循环(i,j,k)(i * j * k > d)时跳出,然后排序输出前(d)
    代码:

    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <map>
    #include <queue>
    #include <vector>
    
    using namespace std;
    typedef long long ll;
    ll a[  3030], b[3030], c[3030];
    
    
    ll ans[101010101];
    bool cmp(ll a, ll b) {
        return a > b;
    }
    void solve() {
        ll ca, cb, cc, n;
        cin >> ca >> cb >> cc >> n;
        for (ll i = 1; i <= ca; i++) {
            cin >> a[i];
        }
        for (ll i = 1; i <= cb; i++) {
            cin >> b[i];
        }
        for (ll i = 1; i <= cc; i++) {
            cin >> c[i];
        }
        sort(a + 1, a + 1 + ca, cmp);
        sort(b + 1, b + 1 + cb, cmp);
        sort(c + 1, c + 1 + cc, cmp);
        ll ans_cnt = 0;
        for (ll i = 1; i <= ca; i++) {
            for (ll j = 1; j <= cb; j++) {
                for (ll k = 1; k <= cc; k++) {
                    if (i * j * k > n)break;
                    ans[++ans_cnt] = a[i] + b[j] + c[k];
                }
            }
        }
        //cout << ans_cnt << endl;
        sort(ans + 1,ans + 1 + ans_cnt);
        for (ll i = ans_cnt; i >= 1 && n > 0; i--, n--) {
            cout << ans[i] << endl;
        }
        
    }
    signed main() {
        ll t = 1;
        //cin >> t;
        while (t--) {
            solve();
        }
    }
    
  • 相关阅读:
    4.iptables 网络防火墙
    iterator not dereferencable问题
    秒杀多线程系列中的题目
    说说僵尸和孤儿进程的那点儿事
    Linux的fork()写时复制原则(转)
    linux进程原语之fork()
    linux--多进程进行文件拷贝
    哈夫曼树与哈夫曼编码
    csp公共钥匙盒
    字典树
  • 原文地址:https://www.cnblogs.com/Xiao-yan/p/14482980.html
Copyright © 2020-2023  润新知