P2564 生日禮物(單調佇列)

2022-02-28 17:12:42 字數 647 閱讀 7606

這個題看上去狀態比較多,實際上由於題目的輸出需要,又因為是乙個線性的結構,所以我們可以有一些操作。

這麼想,如果我們有了乙個滿足條件的區間,此時我們縮減左端點,然後判斷此時是否還是滿足,滿足就繼續縮減,不滿足就伸長右端點,直到下一次又滿足條件為止,複雜度差不多o(n)。

#include#include

#include

#include

#include

#include

#define re register

#define ll long long

using

namespace

std;

structzz;

int b[1000001],h,t,n,m,x,num,minn=999999999

,cnt;

zz d[

1000001],q[1000001

];inline

bool

cmp(zz x,zz y)

intmain()

}h=1;t=0

; sort(d+1,d+num+1

,cmp);

for(re int i=1;i<=n;i++)

}cout

<}

P2564 生日禮物

洛谷鏈結 題目描述 在一段彩帶上有不同顏色的彩珠,求出包含所有顏色彩珠的最短彩帶長度。思路 我們可以把按彩珠的位置把所有彩珠排一下序,然後從1開始遍歷這些彩珠,並記錄出現過的顏色數目,知道該數目等於顏色總數,就開始模擬佇列的先進先出,不斷更新答案。1 include2 include3 includ...

P2564 SCOI2009 生日禮物

傳送 預處理 把m個區間合併成乙個大區間 按照橫座標排序即可 思路 因為我們要一段盡可能小的區間包含所有的彩帶種類,我們不防開乙個陣列,記錄當前區間內每種彩帶多有多少個,從 1,1 開始,如果當前彩帶種類1,即說明這是一條新彩帶,彩帶種類 1,當彩帶種類 m時,記錄下當前區間長度,把左端點向右移,把...

生日禮物(單調佇列)

小西有一條很長的彩帶,彩帶上掛著各式各樣的彩珠。已知彩珠有n個,分為k種。簡單的說,可以將彩帶考慮為x軸,每乙個彩珠有乙個對應的座標 即位置 某些座標上可以沒有彩珠,但多個彩珠也可以出現在同乙個位置上。小布生日快到了,於是小西打算剪一段彩帶送給小布。為了讓禮物彩帶足夠漂亮,小西希望這一段彩帶中能包含...