位元組跳動 萬萬沒想到之抓捕孔連順

2022-02-05 21:35:54 字數 1209 閱讀 3430

我叫王大錘,是一名**。我剛剛接到任務:在位元組跳動大街進行埋伏,抓捕****孔連順。和我一起行動的還有另外兩名**,我提議

1. 我們在位元組跳動大街的n個建築中選定3個埋伏地點。

2. 為了相互照應,我們決定相距最遠的兩名**間的距離不超過d。

我特喵是個天才! 經過精密的計算,我們從x種可行的埋伏方案中選擇了一種。這個方案萬無一失,顫抖吧,孔連順!

……

萬萬沒想到,計畫還是失敗了,孔連順化妝成小龍女,混在cosplay的隊伍中逃出了位元組跳動大街。只怪他的偽裝太成功了,就是楊過本人來了也發現不了的!

請聽題:給定n(可選作為埋伏點的建築物數)、d(相距最遠的兩名**間的距離的最大值)以及可選建築的座標,計算在這次行動中,大錘的小隊有多少種埋伏選擇。

注意:

1. 兩個**不能埋伏在同一地點

2. 三個**是等價的:即同樣的位置組合(a, b, c) 只算一種埋伏方法,不能因「**之間互換位置」而重複使用

輸入描述:

第一行包含空格分隔的兩個數字 n和d(1 ≤ n ≤ 1000000; 1 ≤ d ≤ 1000000)

第二行包含n個建築物的的位置,每個位置用乙個整數(取值區間為[0, 1000000])表示,從小到大排列(將位元組跳動大街看做一條數軸)

輸出描述:
乙個數字,表示不同埋伏方案的數量。結果可能溢位,請對 99997867 取模

不得不說,位元組跳動的筆試還是比其他的難很多。

對於這個題,我也是參考別人的思想來得到答案的。 我們考慮這個情況: 對於d=3, 1 2 3 4 5 6 , 首先我們得到1 2 3,得到一種解法。 再考慮1 2 3 4,我們多了3種方法,1 2 4

, 2 3 4, 1 2 4 (其實是從1,2 3進行3選2;c(3,2)) 。 核心思想就是:新插入乙個元素,獲得乙個新的範圍[left,right],然後獲得c(n,right-left)的新方法。

另外,得注意必須選擇long long型別,以防資料溢位。

1 #include2

using

namespace

std;34

intmain()

16 res+=(i-left)*(i-left-1)/2

;17 res%=99997867;18

}19 cout20 }

萬萬沒想到之抓捕孔連順

1.題目描述 我叫王大錘,是一名 我剛剛接到任務 在位元組跳動大街進行埋伏,抓捕 孔連順。和我一起行動的還有另外兩名 我提議我們在位元組跳動大街的 n 個建築中選定 3 個埋伏地點。為了相互照應,我們決定相距最遠的兩名 間的距離不超過 d。我特喵是個天才 經過精密的計算,我們從 x 種可行的埋伏方案...

萬萬沒想到之抓捕孔連順

題目描述 我叫王大錘,是一名 我剛剛接到任務 在位元組跳動大街進行埋伏,抓捕 孔連順。和我一起行動的還有另外兩名 我提議 我們在位元組跳動大街的n個建築中選定3個埋伏地點。為了相互照應,我們決定相距最遠的兩名 間的距離不超過d。我特喵是個天才 經過精密的計算,我們從x種可行的埋伏方案中選擇了一種。這...

位元組跳動 程式題 萬萬沒想到之抓捕孔連順

我叫王大錘,是一名 我剛剛接到任務 在位元組跳動大街進行埋伏,抓捕 孔連順。和我一起行動的還有另外兩名 我提議 我們在位元組跳動大街的n個建築中選定3個埋伏地點。為了相互照應,我們決定相距最遠的兩名 間的距離不超過d。我特喵是個天才 經過精密的計算,我們從x種可行的埋伏方案中選擇了一種。這個方案萬無...