不衝突地排床位

2021-04-28 12:59:10 字數 704 閱讀 8875

換寢室是大家都不願意碰到的事情,不幸的是,可憐的wwm高中大學都遇到了。

室友們有乙個不成文的規定,那就是根據自己的學號選擇床號。如果某同學的學號是a,並且有0..k-1一共k張床,那麼他就會選擇a%k號床作為他睡覺的地點。顯然,兩個人不能睡在一張床上。那麼給出所有同學的學號,請你為他們準備一間臥室,使得裡面的床的數量最少。

輸入 第一行是同學的個數n(1 <=n <=5,000);第2到第n+1行是每個同學的學號si(1 <=si <=1,000,000)。

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

樣例輸入

5 4

6 9

10 13

樣例輸出 8

解答:

求出所有可能的兩兩差值表,1、2、3、4、5、6、7、9,5往上第乙個空位是8,則8張床為結果。因為,差值無8,因此對8取餘不會有衝突。

對於 的情況。

差值表為 2,4,3往上第乙個空位正好是3,因此取3為結果。 經過

litaoye

和fxg0110

提示,將結論改良如下:

例如 1 8 13

差值集為 5 7 12

可選集為 3 4 6 8 9......

原則:可選集元素不可以為差值集的約數

則可選集最小值為 8,3 4 6 做為 12 的約數都不可取

即對可選集的選擇,最壞的情況也是平方複雜度

maven 12 ,排除衝突JAR包

jar包衝突 org.springframework spring core 4.3.6.release 在pom.xml中新增以上依賴的時候,會自動新增以下兩個jar包 spring core會自動附帶commons logging 1.2,同樣當我們新增其他依賴的時候,有可能也會自動加入comm...

演算法 線段樹 活動排期衝突問題

今天偶然遇到了乙個有點意思的問題,將它轉化成了題目,有點令人懷念 有一張活動排期表,表上有n組活動的排期。其中,每組活動都會開啟若干次,每個活動都有乙個唯一id和乙個開啟時間a,關閉時間b。同組活動不能在相同時間內開啟兩個及以上。如果同組活動同時開啟,則會產生衝突,活動開啟失敗。問 當前活動表內是否...

無排毒不美白 三種排毒方法

不管是身體健康還是美白 思考良久我想排毒還是要放在第一位,因為體內的毒素不除,再多的表面工作也將是徒勞。同時排毒在很多醫學世家眼裡也是占有非常重要的位置的。1 每天補充足夠的水 沒有人會說排毒不要喝水的,所以建議大家一定要養成多喝水的習慣,不管是在炎熱的春夏還是在乾燥的秋冬季節。每天至少喝八杯水能幫...