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\n",p[i].s);
}
}
*************************************************************************************************************************
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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 ; } }
#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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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("\n"); 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; }
#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("\n");
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;
}