zoukankan      html  css  js  c++  java
  • 奶牛卧室

    奶牛卧室
    源程序名     BED.???(PAS,C,CPP)
    可执行文件名   BED.EXE
    输入文件名   BED.IN
    输出文件名   BED.OUT

    问题描述
    奶牛们有一个习惯,那就是根据自己的编号选择床号。如果一头奶牛编号是a,并且有0..k-1一共k张床,那么她就会选择a  mod  k号床作为她睡觉的地点。显然,2头牛不能睡在一张床上。那么给出一些奶牛的编号,请你为她们准备一间卧室,使得里面的床的个数最少。

    输入:
    第一行是奶牛的个数n(1<=n<=5000);第2到第n+1行是每头奶牛的编号Si(1<=Si<=1000000)。
    输出:
    仅一行,是最少的床的数目。

    样例
    输入BED.IN:
    5
    4
    6
    9
    10
    13
    输出BED.OUT:
    8

    题目不分析了,简单提示一下

    若 a1≡b1(mod m),a2≡b2(mod m),则|a1-a2|≡|b1-b2|(mod m)(同余性质)

    即如果存在s[i] mod k=s[j] mod k,便一定存在(s[i]-s[j]) mod k=0

    所以,问题就迎刃而解了。

     1 Var
     2   k,Iris,i,j,n:longint;
     3   mo:array[0..1000001] of Boolean;
     4   s:Array[0..5001] of longint;
     5 Begin
     6   Read(n);
     7   For i:=1 to n do Read(s[i]);
     8   For i:=1 to n-1 do
     9     For j:=i+1 to n do
    10       Begin
    11         Mo[abs(s[i]-s[j])]:=True;
    12         if abs(s[i]-s[j])>Iris Then Iris:=abs(s[i]-s[j]);
    13       End;
    14   k:=n;
    15   While (k<=Iris) And (mo[k]) do inc(k);
    16   Writeln(k);
    17 End.
  • 相关阅读:
    java基础
    mysql入门
    基础整理
    遍历列表的两种方式
    oracle常用操作
    DIV+CSS网页布局技巧实例1:设置网页整体居中的代码
    html+css 淘宝首页静态页面案例
    WEB前端开发规范文档+CSS命名规范
    day05-苏宁易购导航html
    day04-html
  • 原文地址:https://www.cnblogs.com/Catch-22/p/3344720.html
Copyright © 2011-2022 走看看