第五届河南省ACM比赛【T1】
题目链接:NYOJ题目540 奇怪的排序
关键字: 求逆序数 间接排序
源代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 52
int revese[maxn],sub[maxn];
int cmp(int i,int j)
{
return revese[i]<revese[j];
}
int ireverse(int num) //求逆序数
{
int rnum=0;
while(num)
{
rnum=rnum*10 + num%10;
num/=10;
}
return rnum;
}
int main()
{
int N,a,b,i;
cin>>N;
while(N--)
{
cin>>a>>b;
for(i=0;i<=b-a;i++)
{
revese[i]=ireverse(a+i);
sub[i]=i;
}
sort(sub,sub+b-a+1,cmp); //间接对下标排序
for(i=0;i<b-a;i++)
cout<<a+sub[i]<<' ';
cout<<a+sub[i]<<endl; //注意每组数据最后一个数后面不要再输出空格
}
return 0;
}