CTSC2018 混合果汁

2022-05-18 11:38:29 字數 1172 閱讀 4444

題目鏈結——

luogu

loj一道簡單的主席樹

考慮按\(d\)排序,然後二分乙個答案\(x\).

對\(\geq x\)的\(d\)建一棵主席樹即可.

主席樹上維護兩個資訊:果汁的量和總價.

然後在主席樹上二分即可.

時間複雜度\(o(n*log^2n)\)

**如下

好像才\(38\)行呢

#include#include#include#include#include#include#define n (100010)

#define inf (1e18+1)

typedef long double ld;

typedef long long ll;

typedef unsigned long long ull;

using namespace std;

inline char read()

templateinline void read(t &x)

for(x=0;isdigit(c);c=read())x=((x+(x<<2))<<1)+(c^'0');

if(iosig)x=-x;

}inline char readchar()

const int out_len = 10000000;

char obuf[out_len],*ooh=obuf;

inline void print(char c)

templateinline void print(t x)

}inline void flush()

#define ls t[rt].ch[0]

#define pls t[pre].ch[0]

#define rs t[rt].ch[1]

#define prs t[pre].ch[1]

struct sssa[n];

struct zxst[n*21];

int n,m,t[n],ind;

bool cmp(sss a,sss b)

ll query(int rt,int l,int r,ll s)

ll solve(ll s,ll w)

return a[ans].c;

} int main()

}

CTSC2018 混合果汁

為何要用整體二分,整體二分應該怎樣二分,和 poi2011 met meteors十分相像,這裡就不再重複。那麼對於乙個顧客來講,如果當前的區間總份數小於他想要的份數,或者是區間最小 大於他能接受的最大 就把該顧客劃分到右區間,如若滿足則劃分到左區間。想要和 poi2011 met meteors一...

CTSC 2018 混合果汁

題目鏈結 演算法 對於每組詢問 首先二分答案 顯然 最優策略為優先選擇 低的 建立可持久化線段樹 簡單維護即可 時間複雜度 o nlogn 2 includeusing namespace std define n 100010typedef long long ll typedef long do...

BZOJ 5343 Ctsc2018 混合果汁

bzoj 5343 ctsc2018 混合果汁 二分答案 主席樹 題意 給出每個果汁的 p,美味度d,最多能放的體積l。定義果汁混合後的美味度為果汁的美味度的最小值。m次詢問,要求花費不大於g,總體積不小於l,求最大美味度,如果不能滿足,輸出 1。二分答案。然後轉變為求 前l小的果汁之和。類似任務查...