描述 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吸...