北大ACM(POJ1007-DNA Sorting)
Question:http://poj.org/problem?id=1007
问题点:逆序数及快排。
1 Memory: 248K Time: 0MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 #include <string> 6 #include <stdlib.h> 7 8 using namespace std; 9 struct nm 10 { 11 char str[50]; 12 int cnt; 13 }; 14 int mycmp(const void *a,const void *b) 15 { 16 nm *nma=(nm*)a; 17 nm *nmb=(nm*)b; 18 return nma->cnt-nmb->cnt; 19 } 20 int main() 21 { 22 int n,m; 23 nm NM[100]; 24 cin>>n>>m; 25 memset(NM,0,sizeof(NM)); 26 for(int i=0;i<m;i++) 27 { 28 cin>>NM[i].str; 29 int len=strlen(NM[i].str); 30 for(int j=0;j<len;j++) 31 { 32 for(int k=j+1;k<len;k++) 33 { 34 if(NM[i].str[j]>NM[i].str[k]) NM[i].cnt++; 35 } 36 } 37 } 38 qsort(NM,m,sizeof(nm),mycmp); 39 for(int i=0;i<m;i++) 40 { 41 cout<<NM[i].str<<endl; 42 } 43 return 0; 44 }