鼬殇


私信TA

用户名:yzbyhhh

访问量:1283

签 名:

等  级
排  名 7253
经  验 1333
参赛次数 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 人评分

  评论区

  • «
  • »