【问题描述】
奶牛们有一个习惯,那就是根据自己的编号选择床号。如果一头奶牛编号是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;
}
有题目链接吗?
刚看到一个题解:http://lilongfei1030.blog.163.com/blog/static/860152820086319658765/
//////////////////////////////////////////////////////////////////////////
这个题貌似有bug,很多通过的代码都没有考虑差的因子,如果考虑目前看到的题解都会超时的
http://acm.swust.edu.cn/oj/problem/91/
就是这个吧 可以帮我看看吗 谢谢 我的那个超时了 看来思路不够优秀