龐果英雄會 覆蓋數字

2021-08-27 15:35:52 字數 961 閱讀 6160

龐果覆蓋數字原題如下

給定整數區間[a,b]和整數區間[x,y],你可以使用任意多次a,b之間的整數做加法,可以湊出多少個[x,y]區間內的整數?輸入 a,b,x,y,其中1<= a < b <= 1000000000, 1 <= x < y <= 1000000000。輸出: 用[a,b]內的整數做任意多次加法,可以得到多少個[x,y]內的整數。例如a = 8, b = 10, x = 3 , y = 20我們可以得到 [3..20]之間的整數 8, 9, 10, 16 ( 8 + 8), 17(8 + 9), 18(9 + 9), 19(9 + 10), 20(10 + 10),因此輸出8。問:2+3=5 1+4=5 這算1個還是2個?答:算1次 問你能覆蓋多少個不同的數字 [x,y]全覆蓋住得話 就是y - x + 1。

此題開始理解錯題意,以為最多同乙個數是2次相加,其實同乙個數可以多次相加。

比如a=8,b=10,x=3,y=30的情況,從24到30都能覆蓋到(8+8+8...10+10+10)。

那麼我們考慮不能覆蓋的情況,不能覆蓋的區間是r = [i*b+1,(i+1)*a-1],i從0到y/b

那麼我們求得區間r>0的情況i的取值範圍是多少,即 (i+1)*a-1-(i*b+1)>0

求得當i<=(a-1)/(b-a)的時候有不能覆蓋的情況然後與i的最大值y/b比較,取較小的值

然後求小於等於i的不能覆蓋區間r與區間[x,y]的交集count

累加交集count

最後返回y-x-count+1

**如下

/*** @author [email protected]

* @since 2013-10-30

* @version

* @see

*/public class test

i++;

}return y - x - count + 1;}}

龐果英雄會 陣列排序

陣列排序 本題來自caopengcs,只要你有興趣,每個人都可以出題 出題入口在主頁右側邊欄 貢獻題目 內 以下是題目詳情 給定乙個包含1 n的數列,我們通過交換任意兩個元素給數列重新排序。求最少需要多少次交換,能把陣列排成按1 n遞增的順序,其中,陣列長度不超過100。例如 原陣列是3,2,1,我...

挑戰龐果英雄會之子串行的個數

題目詳情 本題同樣來自caopengcs,只要你有興趣,每個人都可以出題 出題入口在主頁右側邊欄 貢獻題目 我要發布 內 以下是題目詳情 子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如 4,14,2,3和14,1,...

龐果英雄會 xml字串檔案的解析

不知道為什麼提交後總是失敗,本機編譯通過。總是使用用例失敗。include include include using namespace std struct xmlattribute struct xmlnode void addnodeattribute xmlnode pnode,xmlat...