hdu 2774(滑動視窗)

2021-08-06 07:22:52 字數 611 閱讀 6265

這個思路和**是參考紫書。儲存數的長度為s + n + s + 1。這樣能保證視窗可以從第乙個數開始滑,可以求出所有情況(有例外,就是第三組資料型別)。以第一組資料為例,

陣列為 -1,-1,-1,-1,3,4,4,1,3,2,1,2,3,4,-1,-1,-1,-1。視窗長度為s = 4。從第乙個數開始滑,判斷此視窗合法性,並進行有效數的數量調整,下乙個視窗可據此判斷。接下來,只需統計滑動的可能性就性了。

#include#include#includeusing namespace std;

const int maxn = 3 * 100000 + 5;

int num[maxn];

int ok[maxn];

int cnt[maxn];

int main()

int ans = 0;

for(int i = 0; i < s; i++)

if(valid) ans++;

}if(ans == n + 1) ans = s;//請思考最後一組資料

printf("%d\n", ans);

}return 0;

}

Week5 D 滑動視窗滑動視窗

week5 d 滑動視窗滑動視窗 zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position ...

week5 D 滑動視窗滑動視窗

zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position minimum value max...

滑動視窗演算法 演算法 滑動視窗 二

演算法 這算是滑動視窗的另外乙個典型題目,在資料量比較少的時候,可以直接採用暴力法解決 不過資料量比較大的時候,我們就需要想辦法解決視窗裡面最大值的思路,這裡我們採用雙端佇列queue來實現,借助 queue來儲存前面計算過的最大值資訊。題目 解法1 暴力解法 按照 視窗大小,從頭到尾依次遍歷,將每...