【NOI 2015】 荷马史诗
2024-08-31 05:35:40
【题目链接】
https://www.lydsy.com/JudgeOnline/problem.php?id=4198
【算法】
不难发现,题目中所说的编码方式就是哈夫曼编码
注意合并时优先合并深度小的
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100010 struct info
{
long long w,s;
friend bool operator < (info a,info b)
{
return (a.w != b.w) ? (a.w > b.w) : (a.s > b.s);
}
}; int i;
long long w[MAXN];
info tmp;
priority_queue< info > q;
long long ans1,val,mx,n,k,ans2; int main()
{ scanf("%lld%lld",&n,&k);
for (i = ; i <= n; i++)
{
scanf("%lld",&w[i]);
q.push((info){w[i],});
}
while ((n - ) % (k - ) != )
{
q.push((info){,});
n++;
}
while (q.size() >= k)
{
val = ; mx = ;
for (i = ; i <= k; i++)
{
tmp = q.top();
q.pop();
val += tmp.w;
mx = max(mx,tmp.s);
}
ans1 += val;
ans2 = max(ans2,mx+);
q.push((info){val,mx+});
}
printf("%lld\n%lld\n",ans1,ans2); return ; }
最新文章
- Coursera-Getting and Cleaning Data-week1-课程笔记
- SpringMVC源码分析系列
- 解决Visual Studio 2010/2012的RC4011 warnings
- SET ROWCOUNT,SET NOCOUNT
- Linux free字段解析
- Weak Event Patterns
- 使用poi3.9的jar输出excel
- 如何在 webApi 当中接收 Gzip 压缩或者加密后的 请求消息内容!
- Git详细教程(3)---结合gitHub使用
- Tomcat7以上403 Access Denied错误
- 面向对象15.2String类-构造函数
- 西电2017ACM网络赛
- 注解ConfigurationProperties注入yml配置文件中的数据
- javascript之location详解
- IOC的底层实现
- Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接
- 【转】java面试题
- Java JDBC的基础知识(四)
- C++ inline内联函数
- Windows版Mycat结合mysql安装配置+水平切分(转载)