http://poj.org/problem?id=1007
2012-02-19 12:48
281 查看
归并排序。。。。
AC代码:
#include<iostream>
#include<string.h>
#include<string>
#include<algorithm>
#define N 60
using namespace std;
char a[101]
,b
;
struct str{ int value;
int id;
}c[101];
bool cmp(str x,str y)
{return x.value<y.value;}
long num;
void merge(char a[],int p,int q,int r,int s)
{ int a1=p,k=p,c=r;
while(a1<=q&&c<=s)
{ if(a[a1]<=a[c]) b[k++]=a[a1++];
else{b[k++]=a[c++];num+=q-a1+1;}
}
if(a1>q)
for(;c<=s;++c)
b[k++]=a[c];
if(c>s)
for(;a1<=q;++a1)
b[k++]=a[a1];
for(;p<k;++p)
a[p]=b[p];
}
void merge_sort(char a[],int p,int r)
{ if(p<r)
{ int q=(p+r)/2;
merge_sort(a,p,q);
merge_sort(a,q+1,r);
merge(a,p,q,q+1,r);
}
}
int main()
{ int n,m;
cin>>n>>m;
for(int i=0;i<m;++i)
{ num=0;
for(int j=0;j<n;++j)
cin>>a[i][j];
char aa[50];
strcpy(aa,a[i]);
merge_sort(aa,0,n-1);
c[i].value=num;
c[i].id=i;
}
sort(c,c+m,cmp);
for(int i=0;i<m;++i)
cout<<a[c[i].id]<<endl;
return 0;
}
AC代码:
#include<iostream>
#include<string.h>
#include<string>
#include<algorithm>
#define N 60
using namespace std;
char a[101]
,b
;
struct str{ int value;
int id;
}c[101];
bool cmp(str x,str y)
{return x.value<y.value;}
long num;
void merge(char a[],int p,int q,int r,int s)
{ int a1=p,k=p,c=r;
while(a1<=q&&c<=s)
{ if(a[a1]<=a[c]) b[k++]=a[a1++];
else{b[k++]=a[c++];num+=q-a1+1;}
}
if(a1>q)
for(;c<=s;++c)
b[k++]=a[c];
if(c>s)
for(;a1<=q;++a1)
b[k++]=a[a1];
for(;p<k;++p)
a[p]=b[p];
}
void merge_sort(char a[],int p,int r)
{ if(p<r)
{ int q=(p+r)/2;
merge_sort(a,p,q);
merge_sort(a,q+1,r);
merge(a,p,q,q+1,r);
}
}
int main()
{ int n,m;
cin>>n>>m;
for(int i=0;i<m;++i)
{ num=0;
for(int j=0;j<n;++j)
cin>>a[i][j];
char aa[50];
strcpy(aa,a[i]);
merge_sort(aa,0,n-1);
c[i].value=num;
c[i].id=i;
}
sort(c,c+m,cmp);
for(int i=0;i<m;++i)
cout<<a[c[i].id]<<endl;
return 0;
}
相关文章推荐
- http://poj.org/problem?id=3984 迷宫问题
- poj 1459Power Network_ http://poj.org/problem?id=1459
- http://poj.org/problem?id=1456&&并查集
- http://poj.org/problem?id=1634
- Prime Cuts http://poj.org/problem?id=1595
- Matrix Power Series 矩阵乘法 二分快速幂http://poj.org/problem?id=3233
- http://poj.org/problem?id=1948..二维01背包。。
- http://poj.org/problem?id=1384
- POJ2485Highwayshttp://poj.org/problem?id=2485
- 最小生成树 10.1.5.253 1505 poj 1258 http://poj.org/problem?id=1258
- poj2407简单题目 http://poj.org/problem?id=2407
- http://poj.org/problem?id=2406
- http://poj.org/problem?id=3233
- http://poj.org/problem?id=2607&&最短路
- http://poj.org/problem?id=2253
- http://poj.org/problem?id=2186&&强连通分量
- http://poj.org/problem?id=3468
- poj 1679 http://poj.org/problem?id=1679
- http://poj.org/problem?id=2239&&Selecting Courses
- http://poj.org/problem?id=1598