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;
    }
  • 相关阅读:
    php的session和cookie
    CRUD
    hibernate关系映射
    hibernate hql
    String和StringBuffer的区别
    策略模式Strategy
    项目结构
    final关键字
    项目中的建议
    struts学习记录
  • 原文地址:https://www.cnblogs.com/mrclr/p/8584709.html
Copyright © 2011-2022 走看看