zju 1188 DNA Sorting

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
    int a;
    char s[105];       
}p[105];
int cmp(node c,node b)
{
    return c.a<b.a;
}
int main()
{
     int m,n;
     int t;
  scanf("%d",&t);   
  //printf("
");
    while(t--)
    {
         scanf("%d%d",&n,&m);
     
          for(int i=0;i<105;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-1;i++)
              for(int j=i+1;j<n;j++)
              if(p[k].s[j]<p[k].s[i])
              p[k].a++;  
                       
          sort(p,p+m,cmp); 
                             
     for(int i=0;i<m;i++)
        printf("%s
",p[i].s);
     if(t)
         putchar('
');
         
    }
    return 0;
}
View Code

#include<stdio.h>

#include<string.h>

#include<algorithm>

using namespace std;

struct node {    

int a;     char s[105];     

  }p[105];

int cmp(node c,node b)

            {     return c.a<b.a; }

int main() {     

int m,n;

     int t;

  scanf("%d",&t);    

    while(t--)

    {      

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

               for(int i=0;i<105;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-1;i++)

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

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

     p[k].a++;                      

            sort(p,p+m,cmp);              

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

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

   if(t)      putchar(' ');        

      }   

  return 0;

}

#include <iostream>
#include <algorithm>
#include<string>
using namespace std;
struct dna
{
    string a;
    int t;
};
bool cmp(dna x,dna y)
{
    return x.t<y.t;
}
int main(int argc, char *argv[])
{
    int m,n,k,i,sum,c;
    struct dna b[105];
    while (cin>>c)
    {
        while (c--)
        {
            cin>>m;
            cin>>n;
            for (i=0;i<n;i++)
            {
                sum=0;
                cin>>b[i].a;
                for (int j=0;j<m;j++)
                    for (k=j+1;k<m;k++)
                        if (b[i].a[j]>b[i].a[k]) sum++;
                b[i].t=sum;
            }
            sort(b,b+n,cmp);
            for (i=0;i<n;i++)
                cout<<b[i].a<<endl;
            if (c) cout<<endl;
        }
    }
    return 0;
}
View Code
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
struct f
{    string s;
    int n;
}node[105];
bool cmp(f a,f b)
{    return a.n<b.n;}
int ff(string s)
{    int i,j,sum=0;
    for(i=1;i<s.size();i++)
        for(j=0;j<i;j++)
            if(s[i]<s[j]) sum++;
    return sum;
}
int main()
{
    int t,n,m,i;
    cin>>t;
    while(t--)
    {    cin>>n>>m;
        getchar();
        for(i=0;i<m;i++)
        {    cin>>node[i].s;
            node[i].n=ff(node[i].s);
        }
        sort(node,node+m,cmp);
        for(i=0;i<m;i++)
            cout<<node[i].s<<endl;
        if(t) cout<<endl;
    }
    return 0;
}
        
View Code
原文地址:https://www.cnblogs.com/2014acm/p/3885987.html