BZOJ 1293 SCOI2009 生日禮物

2021-09-29 01:29:47 字數 957 閱讀 6681

【鏈結】

我是鏈結,點我呀:)

【題意】

在這裡輸入題意

【題解】

顯然的滑動視窗題。

(尺取法

如果l..i這一段已經有k種珍珠了。

那麼就嘗試把l++;

(即把l這個影響嘗試去掉一下

如果不足k種珍珠了,那麼就把l++撤銷。

否則l++照常

(離散化一下資料

【**】

#include #define ll long long

#define rep1(i,a,b) for (int i = a;i <= b;i++)

#define rep2(i,a,b) for (int i = a;i >= b;i--)

#define all(x) x.begin(),x.end()

#define pb push_back

#define lson l,mid,rt<<1

#define rson mid+1,r,rt<<1|1

using namespace std;

const double pi = acos(-1);

const int dx[4] = ;

const int dy[4] = ;

const int n = 1e6;

const int k = 60;

int n,k,cnt[k+10];

vectorv[k+10],v,num[n+10];

int main()

}sort(all(v));

n = unique(all(v))-v.begin();

rep1(i,1,k)

}int l = 0,_count = 0,ans = -1;

rep1(i,0,n-1)

while (_count==k)

if (_count

BZOJ1293 SCOI2009 生日禮物

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

BZOJ1293 SCOI2009 生日禮物

time limit 10 sec memory limit 162 mb submit 2590 solved 1424 submit status discuss 小西有一條很長的彩帶,彩帶上掛著各式各樣的彩珠。已知彩珠有n個,分為k種。簡單的說,可以將彩帶考慮為x軸,每乙個彩珠有乙個對應的座標...

BZOJ1293 SCOI2009 生日禮物

佇列 題目傳送門 這裡介紹一種尺取法。此處的尺意味游標卡尺 從左至右依次測量以當前點為右端點的區間 長度 那麼左端點呢?能用尺取法做的題必然滿足當右端點不斷往右移的時候,左端點不會往左移。所以我們每次就去 check 一下左端點是否能往右移,如果可以那就不斷地去 卡緊 測量範圍。對於這個題,用佇列表...