题意:
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]);
}