| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
犯了几个很水的错误,对菜鸟有帮助//1007自己的垃圾代码毫无技术性可言,打算用匈牙利算法重写
#include<iostream>
using namespace std;
int main()
{
int n,m;
int i=0,j=0,k=0;
long min=50000; //min应该设定的足够大,因为字符串长度最长可达100,逆序也有可能很大
int output=0;
char input[1000][51]={0}; //最后找出来的错误就是这里因该是51而不是50
int unsortness[100]={0};
cin>>n>>m;
for(i=0;i<m;++i)
{
cin>>input[i];
for(j=0;j<n-1;++j)
for(k=j+1;k<n;++k)
if(input[i][j]>input[i][k])
++unsortness[i];
}
for(j=0;j<m;++j)
{
for(i=0;i<m;++i)
if((unsortness[i]<min)&&(unsortness[i]>=0)) //这个判断条件一定要是unsortness[i]>=0,不能丢掉等号
{
min=unsortness[i];
output=i;
}
cout<<input[output]<<endl; //自己犯了一个很水的错误,竟然写的是cout<<input[min]<<endl; 完全把下标是什么搞混
unsortness[output]=-1; //这里最好设置成负数,千万不可设为0
min=50000;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator