給定乙個正整數數列,和正整數 p,設這個數列中的最大值是 m,最小值是 m,如果 m≤mp,則稱這個數列是完美數列。
現在給定引數 p 和一些正整數,請你從中選擇盡可能多的數構成乙個完美數列。
輸入第一行給出兩個正整數 n 和 p,其中 n(≤105)是輸入的正整數的個數,p(≤109)是給定的引數。第二行給出 n 個正整數,每個數不超過 109。
在一行中輸出最多可以選擇多少個數可以用它們組成乙個完美數列。
1082
32045
1678
9
8
哇我這題印象深刻呢。。bug改了好久!
注意一下雖然每個數字都可以用int存,但是乘了p之後是有可能超過int的範圍的!這時候就要用long long存了!
血淚教訓啊orz
#include
#include
#include
intmain()
} cout << result;
return0;
}
PAT菜雞進化史 乙級 1001
卡拉茲 callatz 猜想 對任何乙個正整數 n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到 n 1。卡拉茲在 1950 年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果...
PAT菜雞進化史 乙級 1005
卡拉茲 callatz 猜想已經在1001中給出了描述。在這個題目裡,情況稍微有些複雜。當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每乙個數。例如對 n 3 進行驗證的時候,我們需要計算 3 5 8 4 2 1,則當我們對 n 5 8 4 2 進行驗證的時候,就可以直接判...
PAT菜雞進化史 乙級 1013
令 p ip i pi 表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出p mp m pm 到 p np n pn 的所有素數。輸入在一行中給出 m 和 n,其間以空格分隔。輸出從 p mp m pm 到 p np n pn 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行...