zoukankan      html  css  js  c++  java
  • 运输

    【题目描述】
    现在已知N 件商品,和搬运它们其中每一件的费用。现在搬家公司老板Mr.sb 决定让我们每次任意选取2 件商品。然后这2 件商品只算一件商品的费用。但是这个商品的搬运费用是将选出的2 个商品的费用之和除以k 的运算结果。如此反复。直到只收一件商品的钱。这个就是商店要付的费用。掌柜的想尽可能的少付钱,以便将更多的钱捐给希望工程。所以请你帮他计算一下最少只用付多少钱。

    【输入】
    n,k
    w1,w2,...,wn(每一件商品的搬运费用)
    n,k<=10000

    【输出】
    最少付多少钱

    样例输入
    5 2
    1 2 3 4 5

    样例输出
    1

    水贪心,一直合并最贵的两件商品,知道剩一件。用优先队列实现

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    using namespace std;
    
    #define rep(i ,a, n) for(int i = a; i <= n; ++i)
    #define per(i, n, a) for(int i = n; i >= a; --i)
    typedef long long ll;
    const int maxn = 1e5 + 5; 
    
    priority_queue<int>q;
    int a[maxn], n, k;
    int main()
    {
        freopen("trans.in", "r", stdin);
        freopen("trans.out", "w", stdout);
        scanf("%d%d", &n, &k);
        rep(i, 1, n) 
        {
            int a; scanf("%d", &a);
            q.push(a);
        }
        rep(i, 1, n - 1)
        {
            int a = q.top(); q.pop();
            int b = q.top(); q.pop();
            q.push((a + b) / k);
        }
        printf("%d
    ", q.top());
        return 0;
    }
  • 相关阅读:
    IO模型
    函数第一类对象,闭包,迭代器
    admin里面的注册模型类的写法
    升级pip
    Windows部署superset操作手册
    Python命名空间和作用域窥探
    使用CSS3画出一个叮当猫
    D
    [java]说说 JRE , JDK , JVM 三者之间的区别与联系
    H~N皇后问题
  • 原文地址:https://www.cnblogs.com/mrclr/p/8584709.html
Copyright © 2011-2022 走看看