題目描述
第一行包含兩個個整數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
樣例輸出
6思路
思路都在**裡
ac**
#include
#include
using
namespace std;
int a[
100000];
int ans;
void
zero
(int
&num)
intmain()
//如果k==0,也就是說,只有一樣積分的才能匹配,那麼直接輸出去重後的個數即可
if(k ==0)
set<
int>
::iterator it;
//遍歷索引
for(it=next.
begin()
;it!=next.
end(
);it++
)int left = a[i]
;int mid = a[i+k]
;int right = a[i+
2*k]
;//下面的if的意思是:如果a[i],a[i+k],a[i+2*k]都存在,我就去掉a[i+k]和a[i+2*k]+a[i]中的較小者。
if(left!=
0&& mid!=
0&& right!=0)
else
zero
(a[i+k]);
}//下面的else的意思是:如果a[i],a[i+k]存在,a[i+2*k]=0,我就去掉a[i+k]和a[i]中的較小者(這個容易理解)
else
if(left!=
0&& mid!=0)
}}cout<}
對局匹配(藍橋杯)
小明發現 的自動對局系統在匹配對手時,只會將積分差恰好是k的兩名使用者匹配在一起。如果兩人分差小於或大於k,系統都不會將他們匹配。現在小明知道這個 總共有n名使用者,以及他們的積分分別是a1,a2,an。第一行包含兩個個整數n和k。第二行包含n個整數a1,a2,an。對於30 的資料,1 n 10 ...
藍橋杯 對局匹配 動態規劃
時間限制 1.0s 記憶體限制 256.0mb 問題描述 輸入格式 第一行包含兩個個整數n和k。第二行包含n個整數a1,a2,an。對於30 的資料,1 n 10 對於100 的資料,1 n 100000,0 ai 100000,0 k 100000 輸出格式 乙個整數,代表答案。樣例輸入 10 0...
藍橋杯歷屆試題 對局匹配
問題描述 輸入格式 第一行包含兩個個整數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 樣例輸...