zju 1188 DNA Sorting
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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; }
#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;
}
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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; }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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; }