每日一題 數對

2021-09-27 06:28:49 字數 1030 閱讀 2750

本題來自牛客網,為網易2023年校招題之一。(點我跳轉)

題目描述:

牛牛以前在老師那裡得到了乙個正整數數對(x, y), 牛牛忘記他們具體是多少了。

但是牛牛記得老師告訴過他x和y均不大於n, 並且x除以y的餘數大於等於k。

牛牛希望你能幫他計算一共有多少個可能的數對。

輸入描述:

輸入包括兩個正整數n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。

輸出描述:

對於每個測試用例, 輸出乙個正整數表示可能的數對數量。

時間限制:1秒 空間限制:32768k

倘若使用窮舉法來解決這個問題,那麼其時間複雜的將為恐怖的o(n2)。顯而易見的,這很可能會超出時間限制。那麼就必須將演算法優化,降低其時間複雜度。

下面我們可以先舉乙個小例子來分析如何優化演算法。

取n為5,k為2.我們會發現,滿足的數對有7個,分別是(2,3),(2,4),(2,5),(3,4),(3,5),(4,5),(5,3)。

通過分析滿是的數對的情況,我們可以發現,當ky+k,ay+y)區間內時(a為大於1的引數),總滿足題目的要求。當x=y時,當且僅當k=0的時候滿足題目條件。而若k=0,則任意一對x,y滿足題目條件。

首先,若k=0,則只需計算數對的總數即可。由於kif

(k==0)

當k=(n-k)

*(n-k+1)

/2;當kfor

(int i=k+

1;i<=n;i++

)//x>y

平面內有n個矩形, 第i個矩形的左下角座標為(x1[i], y1[i]), 右上角座標為(x2[i], y2[i])。

如果兩個或者多個矩形有公共區域則認為它們是相互重疊的(不考慮邊界和角落)。

請你計算出平面內重疊矩形數量最多的地方,有多少個矩形相互重疊。

每日一題 Windy 數

數字 dp 這道題與模板只有一點點稍微的不同,還需要判段一下 前導 0 因為我們是從高位開始列舉的,列舉到最後可能會出現這樣的情況 0004,顯然這個數不是 windy 數,但是我們可以看到 0 和 4 相差 是 2 的,所以如果不判斷前導 0 的話就會出現多加的情況,其他 的和模板類似。inclu...

每日一題 43 醜數

題目來自劍指offer 題目 題目換句話說 醜數就是連續除以2,3,5,之後商為1的數.bool isuglynum int nnum 消除因子3 while nnum 3 0 消除因子5 while nnum 5 0 if nnum 1 else 題目思路 醜數乘以2,3,5後仍是醜數。具體來說 ...

LeetCode每日一題 回文數

前言 堅持日更leetcode刷題系列 不積跬步,無以至千里 不積小流,無以成江海。願與諸君共勉!題目 9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從...