当前位置: 代码迷 >> 综合 >> poj 1147 Binary codes bwt压缩算法
  详细解决方案

poj 1147 Binary codes bwt压缩算法

热度:27   发布时间:2024-01-19 05:31:26.0

题意:

bwt压缩算法的解压过程。

分析:

利用前缀排序去掉相同前缀相对顺序不变的性质。bwt压缩算法

代码:

//poj 1147
//sep9
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int last[3012],ans[3012];int main()
{int sum_zero=0;scanf("%d",&n);for(int i=0;i<n;++i){scanf("%d",&last[i]);sum_zero+=!last[i];}int pos=0;for(int i=n-1;i>=0;--i){ans[i]=last[pos];int c=last[pos];pos=(c==0?0:sum_zero)+count(last,last+pos,c);}for(int i=0;i<n;++i)printf("%d ",ans[i]);		
} 


  相关解决方案