藍橋杯 2023年第八屆真題 對局匹配

2021-10-10 05:34:16 字數 765 閱讀 5801

我們可以按照要求將分數分成不同組,同組內的資料相鄰元素差值為k。例如樣例2

10 1

2 1 1 1 1 4 4 3 4 4

我們可以分出一組(1,2,3,4)

這樣的目的是為了便於選取,因為相鄰元素差值為k,所以我們就可以進行跳躍式選取,也就是如果當前決定第i位的值,我們可以選擇選取第i位,這樣就從第i-2位的情況加上第i位的情況,也可以不選,這樣答案就是繼承第i-1位,那當前,這樣就成了dp問題

dp(i)=max

我們將原資料可以分為好幾組,求出每組的最大值,然後最後累加即可

這是乙個很巧妙的思維,可以慢慢理解

/*

10 2

2 1 1 1 1 4 4 3 4 4

0 2 4

1 3*/

#includeusing namespace std;

const int maxn=1e5+8;

const int max=100000;

int cnt[maxn];

int val[maxn];

int dp[maxn];

int main()

if(k==0) }

else

dp[0]=val[0];

dp[1]=max(val[1],dp[0]);

for(int j=2;jans+=dp[sum-1];

} }cout

}

藍橋杯 2023年第八屆真題 對局匹配

我們可以按照要求將分數分成不同組,同組內的資料相鄰元素差值為k。例如樣例2 10 1 2 1 1 1 1 4 4 3 4 4我們可以分出一組 1,2,3,4 這樣的目的是為了便於選取,因為相鄰元素差值為k,所以我們就可以進行跳躍式選取,也就是如果當前決定第i位的值,我們可以選擇選取第i位,這樣就從第...

藍橋杯 2023年第八屆真題 對局匹配

題目 題目說兩個分值的差不等於k,也就是說兩個分值的差為k可以匹配,噢,這不就是等差數列嘛,是不是,你看 對於樣例來說 進來的乙個1。1 0 1,計數,這就是乙個答案,將這個結果標記,如果後面的有這個數就不計數了,一直這樣下去,最後得到的結果不就是答案了麼。如果這樣的做得人,我問一下如果輸入 你得到...

藍橋杯 2023年第八屆真題 對局匹配

我們可以按照要求將分數分成不同組,同組內的資料相鄰元素差值為k。例如樣例2 10 1 2 1 1 1 1 4 4 3 4 4我們可以分出一組 1,2,3,4 這樣的目的是為了便於選取,因為相鄰元素差值為k,所以我們就可以進行跳躍式選取,也就是如果當前決定第i位的值,我們可以選擇選取第i位,這樣就從第...