滑動窗 鹹魚魔法記

2021-08-13 13:11:08 字數 929 閱讀 4063

鹹魚魔法記

time limit:1s

memory limit:128mbyte

submissions:478solved:171

description

給你乙個01串,我們定義這個串的鹹魚值,是最長的全1串。現在你最多可以使用k次鹹魚魔法,每次魔法,你可以使得乙個位置翻轉(0變成1,1變成0)。問你這個串的鹹魚值最多是多少。

input

第一行兩個整數n,k。表示串的長度和可以施展鹹魚魔法的次數。(n,k<=300000)第二行n個01整數。

output

輸出答案。

sample input

10 2

1 0 0 1 0 1 0 1 0 1

sample output 5

solution

「玲瓏杯」線上賽 round #15 河南專場

ps:該題是滑動窗模型,處理過程中應設定兩個變數代表滑動窗的左邊和右邊,注意,由於該題的資料範圍比較大,暴力運算肯定超時,

所以就不要多想了。現在說思路,之所以用滑動窗,是不讓每個元素都遍歷n遍,減少複雜度。設定乙個變數l代表左邊,r代表右邊,當

滿足條件之後,r開始向右移動,一直到不滿足條件。至於條件呢,就是所謂的鹹魚魔法的多少了,我們要得到最長的連續1串,自然會將0

變成1,而當我們每將乙個0變成1,鹹魚魔法都會減少,所以當鹹魚魔法不足的時候就是不滿足條件的時候,即可進行下一步。**如下。

#include#include#include#include#includeusing namespace std;

const int n=3e5+10;

int s[n];

int main()

r++;

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

}}

滑動窗空 單調佇列

給定乙個大小為n 106的陣列。有乙個大小為k的滑動視窗,它從陣列的最左邊移動到最右邊。您只能在視窗中看到k個數字。每次滑動視窗向右移動乙個位置。以下是乙個例子 該陣列為 1 3 1 3 5 3 6 7 k為3。您的任務是確定滑動視窗位於每個位置時,視窗中的最大值和最小值。輸入格式 輸入包含兩行。第...

F Fake Maxpooling(二維滑動視窗)

題目鏈結 給你乙個n m的矩陣,矩陣中每個元素的值都等於行和列的最小公倍數lcm i,j 在給你乙個k,表示k k的矩陣,這個矩陣從左到右從上到下掃瞄,每掃一次就加矩陣中的最大值,問最大值是多少?如果直接暴力的話是會tle的,所以要用到二維滑動視窗降低時間複雜度,具體的是參考了bzoj1047 參考...

c語言 滑窗法 滑動視窗濾波演算法

滑動視窗協議 在tcp通訊中的一種流量控制協議。先握手確定每次發2條記錄,在網路擁堵時,接收方反饋調整接收的大小,傳送方按照這個新調整的大小來發資料。滑動 遞推 平均演算法 維護一定長佇列,每在隊尾插入乙個元素就在佇列頭部刪除乙個元素,然後對其求出均值。滑動視窗濾波演算法 方法一 前提先要獲得一組資...