平衡樹.
這題炒雞好寫的,就是道平衡樹的裸題!
資瓷del和查詢排名
用map存一下節點編號
我們在平衡樹上也不用維護相同值的個數了
左子樹維護<=data[now]的值,因為相同的肯定是後來插入.
第乙個操作直接把查詢物件旋轉到根上去,然後輸出右子樹大小+1
第二個操作先把排名變成第幾小,然後用排名查詢輸出就好了,懶得搞區間操作了(大霧
平板電視才40行左右(大霧
luogu 2584
bzoj 1862
#include
#include
#include
#include
#include
#include
#define int long long
const
int maxm=1000000+10;
std::map
nameid;
std::string name[maxm];
char s[maxm];
int n;
namespace splaytree
inline
bool get(int x)
inline
void pushup(int x)
inline
void rotate(int x)
inline
void splay(int x,int top)
inline
void insert(int val)
int now=rt,fax=0;
while(1)}}
inline
int find(int k)
else k-=siz[ch[now][0]]+1,now=ch[now][1];}}
inline
int pre()
inline
void del(int x)
if(!ch[x][0])
if(!ch[x][1])
int lastrt=rt;
int pre=pre();
splay(pre,0);
ch[rt][1]=ch[lastrt][1];
fa[ch[rt][1]]=rt;
clear(lastrt);
pushup(rt);
}}using
namespace splaytree;
main()
else
if(!num)
else
puts("");}}
}return
0;}
ZJOI2006 物流運輸
description 物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能...
ZJOI2006 物流運輸
dp套最短路。還是蒟蒻做題少。開始想的是狀壓dp。但是因為太蒻了,不會很高效地處理一些點集的最短路,弄了乙個t飛的演算法。之後看了題解才知道原來是可以用dp套最短路做的。為什麼需要dp?因為本題涉及到狀態的選擇。每一天要麼不更換線路,要麼更換。顯然這個東西是沒有辦法貪心搞的,所以只能用dp把狀態整合...
ZJOI2006 物流運輸
物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能夠按時到達目的地。但是修...