17年藍橋杯本科B組決賽 對局匹配

2021-08-19 04:58:25 字數 1378 閱讀 4189

小明發現**的自動對局系統在匹配對手時,只會將積分差恰好是k

的兩名使用者匹配在一起。如果兩人分差小於或大於

k,系統都不會將他們匹配。

現在小明知道這個**總共有n

名使用者,以及他們的積分分別是

a1, a2, ... an

。任意兩名使用者積分差不等於

k)?  

輸入第一行包含兩個個整數n和k

。第二行包含n

個整數a1, a2, ... an

。  對於30%

的資料,

1 <= n <= 10

對於100%

的資料,

1 <= n <= 100000, 0 <= ai <= 100000, 0 <= k <= 100000

輸出乙個整數,代表答案。

樣例輸入:

10 0

1 4 2 8 5 7 1 4 2 8

樣例輸出:

再比如,

樣例輸入:

10 1

2 1 1 1 1 4 4 3 4 4

樣例輸出:

資源約定:

峰值記憶體消耗 < 256m

cpu消耗  

< 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...

」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main

函式需要返回

0注意: 

只使用ansi c/ansi c++ 

標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 

所有依賴的函式必須明確地在原始檔中 

#include 

, 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別

解題思路:可以對每個積分存在的人數進行計數,按照積分分為k組(k=0時特殊處理),因為不同組的人不會匹配,所以只需要考慮同一組中最多會有多少人不會匹配即可(動態規劃實現)

#include #define m 100001

#define max(a,b) a>b?a:b

int score[m]=;

int search(int k);

int main(void)

printf("%d",search(k));

}int search(int k)

,dp[m]=;

if(k==0) //為0時特殊考慮 }

else

dp[0] = val[0];

for(j=1;jsum+=dp[m-1]; //加上這一組的最大人數

} }return sum;

}

2014藍橋杯決賽 本科B組 生物晶元

x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...

藍橋杯 B組 決賽 感悟

其實並不是太想寫這個感悟,雖說沒什麼臉面,但還是有必要寫的,畢竟菜鳥還是得多反思呀。在藍橋盃國賽前一天晚上,自己的 qq 號被盜了,然後 訊息,我手速太慢,好叭,是它發的速度太快了,好多都沒撤回,當時弄得心態很崩.看來遇啥啥不順。在賽場上,其實個人認為做的比較小心,畢竟當時不能判呀,但是還是嗚嗚嗚 ...

2023年藍橋杯B組C C 決賽題目

從昏迷中醒來,小明發現自己被關在x星球的廢礦車裡。礦車停在平直的廢棄的軌道上。他的面前是兩個按鈕,分別寫著 f 和 b 小明突然記起來,這兩個按鈕可以控制礦車在軌道上前進和後退。按f,會前進97公尺。按b會後退127公尺。透過昏暗的燈光,小明看到自己前方1公尺遠正好有個監控探頭。他必須設法使得礦車正...