p1373 奶牛的臥室

2022-08-16 13:51:11 字數 1573 閱讀 1827

描述 description

奶牛們有乙個習慣,那就是根據自己的編號選擇床號。如果一頭奶牛編號是a,並且有0..k-1一共k張床,那麼她就會選擇a mod k號床作為她睡覺的地點。顯然,2頭牛不能睡在一張床上。那麼給出一些奶牛的編號,請你為她們準備一間臥室,使得裡面的床的個數最少。

輸入格式 input format

第一行是奶牛的個數n(1<=n<=5000);第2到第n+1行是每頭奶牛的編號si(1<=si<=1000000)。

輸出格式 output format

僅一行,是最少的床的數目。

樣例輸入 sample input

5469

1013

樣例輸出 sample output

8時間限制 time limitation

1s注釋 hint

1s** source

未知 (這道題非常的水..........(oj上的資料才水.......))

第一次寫數論題,也剛剛開始學,讀題可知就是讓你求(a-b)mod m=0求這個m的最小值,使得m不為任何乙個差的約數

所以剛開始先sort排序一遍,求出每兩個數之間的差數,然後求出最小的m即可。這樣一來不是直接bool型陣列判斷沒兩

個數之間的約數使f[a[j]-a[i]]=true;然後在掃一遍不就完啦!!(這麼水嗎)但是你發現你只拿到了90分,

為什麼被挖了

一組呢因為如果這兩個數的倍數也為差數,那麼這個m也不成立了哇,所以在判斷一下這個

數的約數

是不是其他兩個數的差即可了。

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7 inline int

read()817

while(ch<='

9'&&ch>='0'

)1822return x*f;23}

24int a[5100

];25

bool vis[1001000

];26

intmain()

2734

int ans=0

;35 sort(a+1,a+1+n);

36for(int i=1;i)

3742}43

/*for(int i=1;i<=a[n];i++)90分演算法

44if(!vis[i])

45*/

49int

h;50

for(int i=2;i<=a[n];i++)

5163 h+=i;64}

65if(!flag)

6670

}71 cout

72return0;

73 }

( • ̀ω•́ )✧

題解 P1373 奶牛的臥室

p1373 奶牛的臥室 2017年6月12日 奶牛們有乙個習慣,那就是根據自己的編號選擇床號。如果一頭奶牛編號是a,並且有0.k 1一共k張床,那麼她就會選擇 a mod k 號床作為她睡覺的地點。顯然,2頭牛不能睡在一張床上。那麼給出一些奶牛的編號,請你為她們準備一間臥室,使得裡面的床的個數最少。...

P1373 小a和uim之大逃離

小a和uim來到雨林中探險。突然一陣北風吹來,一片烏雲從北部天邊急湧過來,還伴著一道道閃電,一陣陣雷聲。剎那間,狂風大作,烏雲布滿了天空,緊接著豆大的雨點從天空中打落下來,只見前方出現了乙個披頭散髮 青面獠牙的怪物,低沉著聲音說 呵呵,既然你們來到這,只能活下來乙個!小a和他的小夥伴都驚呆了!瞬間,...

P1373 小a和uim之大逃離

題目描述 瞬間,地面上出現了乙個n m的巨幅矩陣,矩陣的每個格仔上有一坨0 k不等量的魔液。怪物各給了小a和uim乙個魔瓶,說道,你們可以從矩陣的任乙個格仔開始,每次向右或向下走一步,從任乙個格仔結束。開始時小a用魔瓶吸收地面上的魔液,下一步由uim吸收,如此交替下去,並且要求最後一步必須由uim吸...