首页 > 代码库 > zju 1188 DNA Sorting

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("\n");    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\n",p[i].s);     if(t)         putchar(\n);             }    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\n",p[i].s);   

   if(t)      putchar(‘\n‘);        

      }   

  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