BZOJ2716 Violet 3 天使玩偶

2022-05-20 23:23:57 字數 1244 閱讀 6733

題解:  通過取絕對值考慮後 發現是乙個較複雜的cdq  突然考慮距離問題 用kdtree寫也是可行的  但是.....會退化  所以我們考慮用替罪羊樹來防止退化 

#include #include #include #include #include #include #include #include #include #include #define mp make_pair

#define pb push_back

#define pii pair#define link(x) for(edge *j=h[x];j;j=j->next)

#define inc(i,l,r) for(int i=l;i<=r;i++)

#define dec(i,r,l) for(int i=r;i>=l;i--)

const int maxn=5e5+10;

const double eps=1e-8;

#define ll long long

const int inf=1e9+7;

#define alpha 0.75

using namespace std;

struct edgee[maxn<<1],*h[maxn],*o=e;

void add(int x,int y,int vul)

ll read()

while(isdigit(ch))x=x*10+ch-'0',ch=getchar();

return x*f;

}int d,rt;

typedef struct node

int built(int l,int r,int now)

void dfs(int x)

void check(int &x,int now)

return ans1;

}void querty(int x){

if(!x)return ;

ans=min(get_ans(que,a[x]),ans);

int t1=(a[x].c[0]!=0)?getis(a[a[x].c[0]],que):inf;

int t2=(a[x].c[1]!=0)?getis(a[a[x].c[1]],que):inf;

if(t1time limit: 80 sec  memory limit: 128 mb

submit: 2744  solved: 1184

[submit][status][discuss]

bzoj2716 Violet 3 天使玩偶

傳送門 這題好像有cdq分治做法 不過我太菜了沒聽懂 於是我打了一發kdtree 度娘 k d樹 k dimensional樹的簡稱 是一種分割k維資料空間的資料結構。主要應用於多維空間關鍵資料的搜尋 如 範圍搜尋和最近鄰搜尋 k d樹是二進位制空間分割樹的特殊的情況。大概思路就是每次確定乙個軸,將...

BZOJ2716 Violet 3 天使玩偶

bzoj2716 violet 3 天使玩偶 試題描述 輸入 輸出 輸入示例 第乙個測試點,我就不拿來佔頁面了 輸出示例 同上資料規模及約定 題目中給的範圍不對。交上去re。我目測大概 n,m 600000,xi,yi 107.題解 出題人cnbb!1.資料超大,時限 80 sec,出題人惡意卡測評...

BZOJ2716 天使玩偶

乙個平面直角座標系,座標 1 le x,y le10 6 n n le10 6 次操作,操作包含以下兩種 新增乙個點 x,y 詢問離 x,y 最近的點的距離。分別統計左下 左上 右上 右下的最近的點,每次使用cdq分治。樹狀陣列維護最小值。有乙個一樣的題是sjy擺棋子,不過cdq會被卡,需要用kd樹...