題目鏈結——
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小的果汁之和。類似任務查...