poj 1007 DNA Sorting

 错误

#include<stdio.h>

#include<string.h>

#include<algorithm>

using namespace std;

struct node {  

   int a;    

char s[1000];       }p[1000];

int cmp(node c,node b)

{     return c.a<b.a; }

int main()

{    

  int m,n;

     while(scanf("%d%d",&n,&m))

     {

          for(int i=0;i<1000;i++)

          p[i].a=0;

                    for(int i=0;i<m;i++)

          scanf("%s",p[i].s);  

                   for(int k=0;k<m;k++)

          for(int i=0;i<n;i++)   

            for(int j=i+1;j<n;j++)  

             if(p[k].s[i]>p[k].s[j])  

             p[k].a++;              

            sort(p,p+m,cmp);       

                      for(int i=0;i<m;i++)

        printf("%s ",p[i].s);

     }  

  }

*************************************************************************************************************************

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

vector<string> my;            
vector<string> ::iterator it ;
int n,m,i;
string s1;
bool cmp(const string &a,const string &b)
{
 int s1=0,s2=0,i,j;
 for(i=0; i<a.size();i++)
   for(j=i+1; j<a.size();j++)
     if(a[i]>a[j]) s1++ ;
for(i=0; i<b.size();i++)
   for(j=i+1; j<b.size();j++)
     if(b[i]>b[j]) s2++ ;
if(s1!=s2)     return s1<s2 ;     else return s1<s2 ;    
}
int main(  )
{int x=0;
 while(cin>>n>>m)
 {
     my.clear();
     for(i=0;i<m;i++)
     {  cin>>s1 ; my.push_back(s1); }
     sort(my.begin(),my.end(),cmp);
     if(x)  cout<<endl;
      x++;
      for(i=0;i<my.size();i++)  
        cout<<my[i]<<endl ;
 }
    
    
}
View Code

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

vector<string> my;
vector<string> ::iterator it ;
int n,m,i;
string s1;
bool cmp(const string &a,const string &b)
{
int s1=0,s2=0,i,j;
for(i=0; i<a.size();i++)
for(j=i+1; j<a.size();j++)
if(a[i]>a[j]) s1++ ;
for(i=0; i<b.size();i++)
for(j=i+1; j<b.size();j++)
if(b[i]>b[j]) s2++ ;
if(s1!=s2) return s1<s2 ; else return s1<s2 ;
}
int main( )
{int x=0;
while(cin>>n>>m)
{
my.clear();
for(i=0;i<m;i++)
{ cin>>s1 ; my.push_back(s1); }
sort(my.begin(),my.end(),cmp);
if(x) cout<<endl;
x++;
for(i=0;i<my.size();i++)
cout<<my[i]<<endl ;
}
}

********************************************************888

accept

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
vector<string> x;
bool cmp(string a,string b)
{
    int i,j,ans=0;
    for(i=0;i<a.size();i++)
    for(j=i+1;j<a.size();j++)
    {
        if(a[i]>a[j])ans++;
        if(b[i]>b[j])ans--;
    }
    return ans<0;
}
int main()
{
    string s;
    int i,N,M,flag=0;
    while(cin>>N>>M)
    {
        if(flag!=0)
        printf("
");
        flag=1;
        x.clear();
    for(i=0;i<M;i++)
    {
        cin>>s;
        x.push_back(s);
    }
        sort(x.begin(),x.end(),cmp);
        
    for(i=0;i<x.size();i++)
        cout<<x[i]<<endl;
    }
    return 0;
}
View Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
vector<string> x;
bool cmp(string a,string b)
{
 int i,j,ans=0;
 for(i=0;i<a.size();i++)
 for(j=i+1;j<a.size();j++)
 {
  if(a[i]>a[j])ans++;
  if(b[i]>b[j])ans--;
 }
 return ans<0;
}
int main()
{
 string s;
 int i,N,M,flag=0;
 while(cin>>N>>M)
 {
  if(flag!=0)
  printf(" ");
  flag=1;
  x.clear();
 for(i=0;i<M;i++)
 {
  cin>>s;
  x.push_back(s);
 }
  sort(x.begin(),x.end(),cmp);
  
 for(i=0;i<x.size();i++)
  cout<<x[i]<<endl;
 }
 return 0;
}

原文地址:https://www.cnblogs.com/2014acm/p/3885997.html