有没有谁有更好的方法来做<<奶牛卧室>>的方法 用C语言做 除了用指针之外的方法
奶牛们有一个习惯,那就是根据自己的编号选择床号。如果一头奶牛编号是a,并且有0..k-1一共k张床,那么她就会选择a mod k号床作为她睡觉的地点。显然,2头牛不能睡在一张床上。那么给出一些奶牛的编号,请你为她们准备一间卧室,使得里面的床的个数最少。
【输入文件】
第一行是奶牛的个数n(1<=n<=5000);第2到第n+1行是每头奶牛的编号
Si(1<=Si<=100 0000)。
【输出文件】
仅一行,是最少的床的数目。
【输入样例】
5
4
6
9
10
13
【输出样例】
8
我的代码如下:可惜超时了
# include<iostream>
using namespace std;
int main()
{
int i,n,a,t,b,j,g,x[1000],y[1000];
cin>>n; for(i=0;i<n;i++)
cin>>x[i]; for(j=n;j;j++)
{
g=0;
for(i=0;i<n;i++)
{
y[i]=x[i]%j;
}
for(a=1;a<n;a++)
for(b=0;b<n-1;b++)
if(y[b]>y[b+1])
{
t=y[b];
y[b]=y[b+1];
y[b+1]=t;
}
for(b=0;b<n;b++)
if(y[b+1]!=y[b])
g++;
if(g==n) break;
}
cout<<j<<endl;
return 0;
}

浙公网安备 33010602011771号