美文网首页
2020-09-11 合并果子 / [USACO06NOV] F

2020-09-11 合并果子 / [USACO06NOV] F

作者: JalorOo | 来源:发表于2020-09-11 15:50 被阅读0次

https://www.luogu.com.cn/problem/P1090

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <sstream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;

//template<typename DataType>
//DataType qmi(DataType m, int k)
//{
//    DataType res = 1, t = m;
//    while (k)
//    {
//        if (k&1) res = res * t;
//        t = t * t;
//        k >>= 1;
//    }
//    return res;
//}


int qmi(int m, int k)
{
    int res = 1, t = m;
    while (k)
    {
        if (k&1) res = res * t;
        t = t * t;
        k >>= 1;
    }
    return res;
}

int read(){
    int x = 0,f = 1;
    char c = getchar();
    while (c<'0'||c>'9') {
        if (c=='-') {
            f = -1;
        }
        c = getchar();
    }
    while (c>='0'&&c<='9') {
        x = x*10+c-'0';
        c = getchar();
    }
    return x*f;
}

#define fi(a,b) for(int i = a; i <= b; i++)
#define fj(a,b) for(int j = a; j >= b; j--)

struct priceAndCnt{
    int price,cnt;
};

void quickSort(priceAndCnt *a,int left,int right){
    int i,j;
    
    priceAndCnt temp,t;
    
    temp = a[(left+right)/2];//基准值
    
    i = left;
    j = right;
    
    while(i<=j){
        while (a[j].price > temp.price) {
            j--;
        }
        
        while (a[i].price < temp.price) {
            i++;
        }
        
        if (i<=j) {
            t = a[i];
            a[i] = a[j];
            a[j] = t;
            //继续下一步
            i++;
            j--;
        }
    }
    
    if(left<j)quickSort(a,left, j);//继续分治
    if(i<right)quickSort(a,i, right);//继续分治
}

int n,x,ans;
priority_queue<int,vector<int>,greater<int> >q;//优先队列从小到大使用
int main(){
    cin>>n;
    fi(1,n){
        q.push(read());
    }
    while(q.size()>=2){
        int a=q.top();
        q.pop();
        int b=q.top();
        q.pop();
        ans += a+b;
        q.push(a+b);
    }
    cout << ans <<endl;
    return 0;
}
/*
3
1 2 9
4
9 4 5 1
============
15
*/

相关文章

  • 2020-09-11 合并果子 / [USACO06NOV] F

    https://www.luogu.com.cn/problem/P1090

  • 合并果子

    在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了N堆。果园是一个二维平面,第i堆果子的位置为...

  • 合并果子问题

    第一时间想到取前两个元素相加然后insert进去再quicksort。结果.... 然后换个堆排序看看: 不懂为啥...

  • AcWing 148. 合并果子

    AcWing 148. 合并果子 哈夫曼/贪心

  • 信息课总结(一)

    贪心与排序 一、合并果子(洛谷ojP1090) 原题是洛谷的P1090 合并果子思路:要使总共的和最小,则要使单次...

  • js中两个数组合并常用的方法

    题:将两个数组进行合并,如:[a, b, c]和[d, e, f]进行合并变成[a, b, c, d, e, f]...

  • 社交尴尬症(美国泰·田代著,李春花译)

    2020-09-11原文:如何在不失去自我的前提下适应外界? 2020-09-11原文:长期处于尴尬中的人会觉得这...

  • 多表合并;删除重复行

    多表合并: all sheet in one folder alt+F11___VBA Sub 合并当前目录下所有...

  • Git Learning Part 2

    Tips 1.merge参数 合并分支时加上参数 —-no-ff参数使用普通模式合并,合并后会有历史记录,使用 f...

  • 2.21

    今天早上我和F先生在补舌尖三,我看到有煎饼果子的镜头就忽然想吃煎饼果子,然️后 下午的时候F先生给我发的消息,最近...

网友评论

      本文标题:2020-09-11 合并果子 / [USACO06NOV] F

      本文链接:https://www.haomeiwen.com/subject/trhbektx.html