BZOJ2827 千山鳥飛絕

2022-08-12 23:54:19 字數 1188 閱讀 6582

離散化座標,每個座標開一棵以鳥的編號為關鍵字的平衡樹。每次插入時打2個標記,同時更新自身。這個方法比較顯然,而且好寫。正解好像用很迷的方法亂搞了一波,然後用線段樹不打標記就做出來了,並不會。

treap旋轉沒傳引用,調了好久。

#include#define n 30005

#define m 330005

#define x first

#define y second

#define if else if

using namespace std;

int n,m,i,v[m];

typedef int ds[n];

ds f,l,r,z;

typedef pairvec;

vec a[m],s[m];

struct node*t[m],e[m];

node*back=e+1;

node*null=e;

node*create(int v));

}void update(node*t)

void lturn(node*&t)

void rturn(node*&t)

void eq2(int&a,int b)

void insert(int v,node*&s)

if(s->vr);

if(s->r->q>s->q)

lturn(s);

} update(s);

}void erase(int v,node*&s)

if(s->r==null)

if(s->l->q>s->r->q)

else

update(s);

}void come(int v,node*&s)

void dfs(node*t)

}int main()

scanf("%d",&m);

for(i=n+1;i<=n+m;++i)

sort(s+1,s+n+m+1);

for(i=1;i<=n+m;++i)

t[i]=null;

for(i=1;i<=n;++i)

come(i,t[f[i]=lower_bound(s+1,s+n+m+1,a[i])-s]);

for(i=n+1;i<=n+m;++i)

for(i=1;i<=n;++i)

}

bzoj 2827 千山鳥飛絕

time limit 10 sec memory limit 128 mb submit 802 solved 228 submit status discuss 51 1 1 3 1 2 4 4 4 2 0 1 2 2 3 51 1 2 2 4 4 2 4 3 3 0 1 5 0 134 688對...

BZOJ2827 千山鳥飛絕

portal 有 n n leq10 5 隻鳥分布在二維平面的整點上。每只鳥有威武值 士氣值和團結值 威武值是固定的 士氣值等於與其在同一位置的其他鳥的威武值的最大值 團結值等於與其在同一位置的其他鳥的隻數。接下來 t t leq2.5 times10 5 秒,第 i 秒會有乙隻鳥 b i 由原位置...

題解 BZOJ 2827 千山鳥飛絕

話說有一天 doyouloveme 和 vfleaking 到山里玩。誰知 doyouloveme 剛剛進山,所有的鳥兒竟被他的神犇氣場給驚得全部飛走了。vfleaking 頓時膜拜不已。這時鳥王用鳥語說道 安撫了一下眾鳥的情緒。鳥王生性好鬥,作出了乙個決定 要排鳥布陣把剛才嚇到它們的人類趕出山去。...