藍橋杯12屆選拔賽3期 10題

2021-10-22 00:06:38 字數 1266 閱讀 4215

給定乙個序列 (a_1, a_2, …, a_n), 它的乙個上公升子串行是指從序列中取出一些元素,按照原來的順序排列後,是單調遞增的序列。

例如,對於序列 (3, 2, 7, 6, 7),取出下標為 2, 4, 5 的元素 a_2, a_4, a_5,即 2, 6, 7,是乙個上公升子串行。

在這個序列中,有 7 個長度為 2 的上公升子串行,例如

下標 1, 3 對應的 3, 7;

2. 下標 1, 4 對應的 3, 6;

3. 下標 1, 5 對應的 3, 7;

4. 下標 2, 3 對應的 2, 7;

5. 下標 2, 4 對應的 2, 6;

6. 下標 2, 5 對應的 2, 7;

7. 下標 4, 5 對應的 6, 7。

注意,可能有下標不同但對應數值相同的上公升子串行,他們應當算成不同的上公升子串行。

給定序列,請問序列中一共有多少個長度為 k 的上公升子串行。

輸入格式

輸入第一行包含兩個整數 n, k,表示序列的長度和上公升子串行的長度。

第二行包含 n 個整數 a_1, a_2, …, a_n,表示給定的序列。

輸出格式

輸出一行,包含乙個整數,表示長度為 k 的上公升子串行的數量,答案可能很大,請輸出答案除以 1000007 的餘數。

樣例輸入

5 23 2 7 6 7

樣例輸出

7資料規模和約定

對於 30% 的評測用例,1 <= n <= 20, 0 <= a_i <= 100。

對於 50% 的評測用例,1 <= n <= 100, 0 <= a_i <= 1000。

對於所有評測用例,1 <= n <= 1000, 1 <= k <= 10, 0 <= a_i <= 10000。

#include

using

namespace std;

#include

const

int n =

1010

;int n , k , a[n]

;int dp[n]

[n];

// dp[i][j]以i結尾 長度為 j的 上公升子串行數量

intmain()

}}int ans =0;

for(

int i =

1; i <= n ; i++

) cout

}

acwing社群:acwing.895,11屆藍橋杯c++b組國賽第4題,需要的我私聊發你

第五屆藍橋杯校內選拔賽

輸入乙個字串,求它包含多少個單詞。單詞間以乙個或者多個空格分開。第乙個單詞前,最後乙個單詞後也可能有0到多個空格。比如 abc xyz 包含兩個單詞,ab c xyz 包含3個單詞。如下的程式解決了這個問題,請填寫劃線部分缺失的 注意 只填寫劃線部分的 不要填寫任何多餘的內容。比如已經存在的小括號,...

第五屆藍橋杯校內選拔賽 1

輸入乙個字串,求它包含多少個單詞。單詞間以乙個或者多個空格分開。第乙個單詞前,最後乙個單詞後也可能有0到多個空格。比如 abc xyz 包含兩個單詞,ab c xyz 包含3個單詞。如下的程式解決了這個問題,請填寫劃線部分缺失的 注意 只填寫劃線部分的 不要填寫任何多餘的內容。比如已經存在的小括號,...

第五屆藍橋杯校內選拔賽 4

今有7對數字 兩個1,兩個2,兩個3,兩個7,把它們排成一行。要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是乙個符合要求的排列 17126425374635 當然,如果把它倒過來,也是符合要求的。請你找出另一種符合要求的排列法,並且這個排列法是以7...