POJ 1007 - DNA Sorting
输入m个长度为n的DNA序列,把他们按照逆序数从小到大稳定排序输出。
计算一下逆序数,排个序。
1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 #include <algorithm> 5 using namespace std; 6 struct P{ 7 int x; 8 string s; 9 void cal(int n) 10 { 11 x=0; 12 for(int i=0;i<n-1;i++) 13 { 14 for(int j=i+1;j<n;j++) 15 { 16 if(s[i]>s[j]) x++; 17 } 18 } 19 } 20 }a[105]; 21 int n,m; 22 bool cmp(P a,P b) 23 { 24 return a.x<b.x; 25 } 26 int main() 27 { 28 scanf("%d%d",&n,&m); 29 for(int i=0;i<m;i++) 30 { 31 cin>>a[i].s; 32 a[i].cal(n); 33 } 34 sort(a,a+m,cmp); 35 for(int i=0;i<m;i++) cout<<a[i].s<<endl; 36 }
我自倾杯,君且随意