鼬殇


私信TA

用户名:yzbyhhh

访问量:1222

签 名:

等  级
排  名 6708
经  验 1328
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:把所有数据存放到优先队列里面,每次取队列的头(前2个元素),然后把这两个数的和存放队列里面

注意事项:

参考代码:

#include<iostream>

#include<vector>

#include<queue>

using namespace std;

int n;

int main(){

     cin>>n;

     priority_queue<int,vector<int>,greater<int> > p;

     for(int i=0;i<n;i++){

         int b;

         cin>>b;

          p.push(b);

     }

    

     int res=0;

     while(p.size()>1){

         int x=p.top();p.pop();

         int y=p.top();p.pop();

         p.push(x+y);

         res+=(x+y);

     }

     cout<<res;

     return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区