離散化座標,每個座標開一棵以鳥的編號為關鍵字的平衡樹。每次插入時打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 頓時膜拜不已。這時鳥王用鳥語說道 安撫了一下眾鳥的情緒。鳥王生性好鬥,作出了乙個決定 要排鳥布陣把剛才嚇到它們的人類趕出山去。...