正解:贪心

解题报告:

传送门$QwQ$

昂这个就哈夫曼树板子题鸭$QwQ$,只是从二叉变成多叉了$QwQ$

考虑用类似合并果子的方法?就从两个变成$k$个了嘛,一样的鸭,然后就做完了$QwQ$

注意一个细节趴$QwQ$,就可能存在选不满的情况,就先补0就成$QwQ$

$over$!

(然后记得开$ll$昂,,,$100pts->45pts$还是挺难受的了$kk$

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define sc second
#define il inline
#define gc getchar()
#define mp make_pair
#define ll long long
#define int long long
#define P pair<ll,int>
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define lb(x) lower_bound(st+1,st+st_cnt+1,x)-st int n,K;
ll as;
priority_queue< P,vector<P>,greater<P> >Q; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
} signed main()
{
//freopen("2168.in","r",stdin);freopen("2168.out","w",stdout);
n=read();K=read();rp(i,,n)Q.push(mp(read(),));while((n-)%(K-))Q.push(mp(,)),++n;
while((int)Q.size()>=K)
{
P nw=mp(,);
rp(i,,K)
{
P tmp=Q.top();Q.pop();nw.fi+=tmp.fi;nw.sc=max(nw.sc,tmp.sc+);
}
Q.push(nw);as+=nw.fi;
}
printf("%lld\n%lld\n",as,Q.top().sc);
return ;
}

最新文章

  1. μCos-ii学习笔记1_概述
  2. 学习indy组件之一idhttp的使用方法
  3. iOS开发流程总结
  4. 献给广大it从业人士:早睡早起,晚睡也早起
  5. CSS 中的内联元素、块级元素以及display的各个属性的特点
  6. html 绘图渐变和图片填充
  7. CSS :before和:after (转)
  8. Xcode5 上使用Base SDK iOS6程序和iOS6模拟器
  9. Codevs 1048 石子归并
  10. FFMPEG视音频编解码零基础学习方法-b
  11. 【MySQL性能优化】改进MySQL Order By Rand()的低效率
  12. underscorejs-contains学习
  13. 180行ruby代码搞定游戏2048
  14. 2014/08/23——OJ出现waiting...
  15. 去掉matlab图片空白边缘
  16. 关于C++中虚函数表存放位置的思考
  17. HDU1027 Ignatius and the Princess II
  18. Angular CLI: 发布到 GitHub Pages
  19. Radar Installation POJ - 1328
  20. Windows 2012服务器安装GPU版TensorFlow完全攻略

热门文章

  1. 从零学React Native之02状态机
  2. phpexecl
  3. HZOJ 回家
  4. 在线学编程!十大IT在线教育网站推荐
  5. TOP10!全球顶级云计算公司战斗力排行榜
  6. python selenium 测试配置信息(URL和浏览器)
  7. jQuery仿迅雷图片轮换效果
  8. hdu 2225 The nearest fraction (数学题)
  9. oracle用UNION-ALL 替换UNION ( 如果有可能的话)
  10. URL的转义和解析