給出n個數,要求找出序列中有多少個連續子串行滿足一下要求:子串行中任意乙個數字出現的次數小於k
輸入:
第一行輸入n和k,然後輸入n個數字
輸出:
滿足要求的子串行個數
樣例輸入:
4 1
1 2 2 3
輸出
6
此題可用查詢表+滑動視窗解決,考察子串[i..j]是否滿足要求,d[j]中記錄以j結尾的最長子串長度,其實這個長度也就是以j結尾的滿足要求的子串個數。最後將d[0]到d[n-1]加起來即為題目所求,其他分析詳見**:
#include
#include
#include
#include
using
namespace
std;
int test()
unordered_map
hash;
std::vector
dp(count, 0); //
// 考慮子串[i..j]是否滿足條件,d[j]表示以索引為j結尾的最大子串長度,也是以j結尾的子串個數
for (int i = 0, j = 0; j < count && i < count; j++)
dp[j] = j - i + 1; // 再次滿足條件,儲存下長度}}
int sum = 0;
for (int i = 0; i < dp.size(); i++)
sum += dp[i];
cout
<< sum << endl;
return exit_success;
}
4 2
1 2 2 3
10請按任意鍵繼續. . .
VBA自定義函式 計數滿足要求的單元格數量
同事要求幫忙,做乙個計數需求,統計單元格內容中包含 至少有兩個或者合格的數量。單元格裡內容有 合格等,如下圖 這個計數需求是可以用countif函式直接處理,但是同事說公式太長了,容易亂,於是想了想,用vba自定義乙個函式解決,主要思路是通過instr依次查詢單元格內字串中是否有 然後相加起來是否大...
子串行的個數
龐果網題目 子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1 還是靠動態規劃 設f k 為前k個數的子串行數目,則f 0 1 f k 與f k 1 有什麼關係呢?例如序列,k 2時的子串行有 0 1 2 01 02 12...
子串行的個數
子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子串行的數量。由於答案比...