poj 1147 BWT压缩方法
来源:互联网 发布:淘宝客如何骗取佣金 编辑:程序博客网 时间:2024/04/29 01:48
题目描述
问题源自BWT压缩方法。详见http://acm.pku.edu.cn/JudgeOnline/problem?id=1147。
该问题就是BWT压缩方法的逆过程。关于BWT压缩方法见http://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transform。
解题过程
有的时候感觉智商不够用。如果没有答案估计我是想不出答案了。
我解题过程写了3套代码。
第一套代码
按照wiki上说的建立一个表,问题的规模是n=3000,表的规模是n*n,所以空间满足需求。这里面有一个排序的过程,我用STL的sort,就是快速排序,问题的规模是n=3000,每次排序平均需比较1000左右的字符,快速排序的复杂度为n*lgn,所以总的时间为O(n*n*lgn*n/2)。所以可想而知,CPU越要计算10^10,当然是超时了。
第二套代码
发现排序的时候有个规律,在第i步之前,原来的表是从小到大排序好的,利用这个规律改进排序方法,排序用O(n)就可以了,所以总共的时间复杂度是O(n*n), 最后空间是9000k,时间是900ms.
第三套代码
继而发现表都不用建立,那么填充表的过程也可以省略,最终空间是180k,时间是100ms.
改进所带来的乐趣,只有努力AC的人才能体会!没有最快,只有更快!
代码
- poj 1147 BWT压缩方法
- poj 1147 Binary codes BWT压缩算法
- poj 1147 Binary codes bwt压缩算法
- BWT压缩算法
- BWT(压缩与还原)
- POJ 1147 Binary codes (BWT算法 很巧妙)
- bwt
- bwt
- Burrows-Wheeler 压缩(转换)算法(BWT)
- BWT压缩算法及FM搜索算法详解
- hdu4644 BWT
- BWT算法
- BWT数据压缩算法
- 基因组(BWT)排序
- hdu 4644 BWT (kmp)
- bwt - search 算法
- php实现bwt 算法
- hdu4644 BWT(KMP)
- 乌有之乡图片轮播
- RS-232/RS-485/RS-422 接口简介与编程
- 在程序中动态改变控件的背景颜色
- 不容易啊
- 今日小记10-8-1
- poj 1147 BWT压缩方法
- 电脑关机出现对话框,要求确认或取消,怎么回事?
- windows/linux code convert
- asis 1.4入门
- suse sendmail
- 完美解决ASP 不能更新。数据库或对象为只读。
- 项目杂记
- 可重入函数与不可重入函数
- 转一个好文章