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