【题解】ACMICPC 2015 final L 哈弗曼树

http://59.77.230.22/icpc.baylor.edu/download/worldfinals/problems/icpc2015.pdf

题意就是给一个n,有n天,每天的天气是4种天气之一,四种天气的概率给你,然后叫你对n天天气可能产生的天气序列进行编码,就是总共有4^n个天气序列。类似哈弗曼编码那样,每种天气序列的编码唯一,并且不能是其他编码的前缀。问能得到的最小的天气序列的期望编码长度。其实就是哈弗曼编码...

难点在于n最大20,就是有4^20种天气序列,最暴力的处理出来是不行的。

突破点在于每天的4种天气的概率是一样的,就是a,b,c,d来说,那么产生的天气序列的概率值最多只有C(n+3,3)种,就是相当于将n天分配到4中天气中,每种天气有多少天这样。这样大概是1000多种,然后就类似哈弗曼树的做法做了,复杂度估计是1000^2*log1000,没仔细验证,应该是吧- -。//------------- 实际上大概是10000*log10000吧,每种最多产生log2(...)种新的,平均大概10吧,所以最多1W种左右,然后处理过程要用到堆或者set之类的,logn。

我校final队6题,这题没过,场上50多队过的,特意去看了下,果然不难...但我还是想了好久...大概CF C题,TC 500pt的难度吧。

转载于:https://www.cnblogs.com/seen1020/p/4522605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值