4198: [Noi2015]荷马史诗 贪心+优先队列
来源:互联网 发布:mac jenkins 启动命令 编辑:程序博客网 时间:2024/05/21 14:58
其实我并不太懂Huffman编码的原理什么的。。只是套K叉哈弗曼树罢了。。 然而由于初赛一直随便水所以哈弗曼树是什么我也不太懂只知道是贪心。。
#include<bits/stdc++.h>#define ll long long using namespace std;int n,k;ll ans;priority_queue<pair<ll,int>,vector<pair<ll,int> >,greater<pair<ll,int> > > q;inline ll read(){ ll a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f;}int main(){ n=read(); k=read(); for (int i=1;i<=n;i++) q.push(make_pair(read(),0)); while (k!=2&&(n-1)%(k-1)) n++,q.push(make_pair(0,0)); while (q.size()>1) { ll x=0; int y=0; for (int i=1;i<=k;i++) x+=q.top().first,y=max(y,q.top().second),q.pop(); ans+=x; q.push(make_pair(x,y+1)); } cout << ans << endl << q.top().second << endl; return 0;}
0 0
- 4198: [Noi2015]荷马史诗 贪心+优先队列
- 【哈夫曼树,贪心】BZOJ4198 [Noi2015]荷马史诗
- 4198: [Noi2015]荷马史诗
- BZOJ 4198 [Noi2015 D2T1] 荷马史诗
- bzoj 4198: [Noi2015]荷马史诗
- [BZOJ]4198 [NOI2015] 荷马史诗 哈夫曼树
- 【NOI2015】【bzoj4198】【荷马史诗】【k叉哈夫曼树】【贪心】
- 【BZOJ4198】[Noi2015]荷马史诗【k叉Huffman树】【贪心】
- [BZOJ4198][Noi2015]荷马史诗
- bzoj4198【noi2015】荷马史诗
- bzoj4198 noi2015 荷马史诗
- 【NOI2015】bzoj4198 荷马史诗
- 【bzoj4198】[NOI2015]荷马史诗
- [NOI2015]荷马史诗 哈夫曼树
- bzoj4198 [Noi2015]荷马史诗
- 【NOI2015T4】荷马史诗-优先队列实现K进制哈夫曼编码+贪心
- BZOJ 4198([Noi2015]荷马史诗-k叉哈夫曼树)
- [K叉哈夫曼树]BZOJ 4198—— [Noi2015]荷马史诗
- Effictive C++笔记
- JavaScript调用后台的三种方法实例
- opencv初探(二)
- py解析xml
- Java基础面试点(1)
- 4198: [Noi2015]荷马史诗 贪心+优先队列
- zhuan:串口成帧协议
- iOS 代码修改xib中的约束
- BZOJ_P3561 DZY Loves Math VI(数论+莫比乌斯反演)
- SlidingMenu的应用实例
- 文件的读写
- 2016年司考新手复习指南
- Adjacent Node Sum (图的邻接表表示 C语言)
- LeetCode : Merge Two Sorted Lists [java]