luogup2564
題目:小西有一條很長的彩帶,彩帶上掛著各式各樣的彩珠。已知彩珠有n個,分為k種。簡單的說,可以將彩帶考慮為x軸,每乙個彩珠有乙個對應的座標(即位置)。某些座標上可以沒有彩珠,但多個彩珠也可以出現在同乙個位置上。
小布生日快到了,於是小西打算剪一段彩帶送給小布。為了讓禮物彩帶足夠漂亮,小西希望這一段彩帶中能包含所有種類的彩珠。同時,為了方便,小西希望這段彩帶盡可能短,你能幫助小西計算這個最短的長度麼?彩帶的長度即為彩帶開始位置到結束位置的位置差。
題解:單調,然後用類似莫隊的方法維護出現的種類數。。。
#include
using
namespace std;
const
int n=
1e6+
10,k=
106;
int n,m;
int g=0;
struct qu
}a[n]
;int z[n]
,p1,p2;
int cnt[k]
,gs;
void
add(
int x)
void
del(
int x)
bool
check
(int x)
return0;
}int
main()
sort
(a+1
,a+g+1)
;//for(int i=1;i<=n;i++)printf("%d(%d) ",a[i].k,a[i].d);
int l=
1,r=maxx,mid;
while
(lprintf
("%d"
,l);
}
生日禮物(單調佇列)
小西有一條很長的彩帶,彩帶上掛著各式各樣的彩珠。已知彩珠有n個,分為k種。簡單的說,可以將彩帶考慮為x軸,每乙個彩珠有乙個對應的座標 即位置 某些座標上可以沒有彩珠,但多個彩珠也可以出現在同乙個位置上。小布生日快到了,於是小西打算剪一段彩帶送給小布。為了讓禮物彩帶足夠漂亮,小西希望這一段彩帶中能包含...
P2564 生日禮物(單調佇列)
這個題看上去狀態比較多,實際上由於題目的輸出需要,又因為是乙個線性的結構,所以我們可以有一些操作。這麼想,如果我們有了乙個滿足條件的區間,此時我們縮減左端點,然後判斷此時是否還是滿足,滿足就繼續縮減,不滿足就伸長右端點,直到下一次又滿足條件為止,複雜度差不多o n include include i...
1005 生日禮物
題目描述 description 輸入描述 input description 輸入的第一行包含2個整數n 1 n 8 m 1 m 10 表示有n種不同型別的本子和m種小寒喜歡的顏色。接下來乙個n m的矩陣。第i行第j列的整數aij表示在第i種型別的本子中包含小寒喜歡的顏色j的紙有aij 1 aij...