BZOJ4003 JLOI2015 城池攻占

2022-05-25 11:00:15 字數 937 閱讀 7972

左偏樹裸題 合併+lazytag即可

每個點合併兒子然後彈出所有然後每個騎士直接dep[x]-dep[y]掛了的節點和初始節點的深度差即可

樣例太水了注意要判每個節點萬一騎士掛完了是空的qaq

//

love and freedom.

#include#include

#include

#include

#define ll long long

#define inf 20021225

#define n 300010

using

namespace

std;

ll read()

while(ch>='

0'&&ch<='

9') s=s*10+ch-'

0',ch=getchar();

return f*s;

}struct edgee[n]; int

in[n],cnt,dep[n]; int

rt[n];

void add(int x,int y)

struct nodet[n];

int st[n]; int war[n],city[n]; ll v[n],c[n]; bool

kd[n];

void pushdown(int

x)

if(add)

}int find(int x)

int merge(int x,int

y)void modify(int

x,ll add,ll mul)

if(add)

}void pop(int &x,int

ct)void work(int

x)int

n,m;

intmain()

view code

bzoj 4003 JLOI2015 城池攻占

小銘銘最近獲得了一副新的桌遊,遊戲中需要用 m 個騎士攻占 n 個城池。這 n 個城池用 1 到 n 的整數表示。除 1 號城池外,城池 i 會受到另一座城池 fi 的管轄,其中 fi i。也就是說,所有城池構成了一棵有根樹。這 m 個騎士用 1 到 m 的整數表示,其中第 i 個騎士的初始戰鬥力為...

bzoj 4003 JLOI2015 城池攻占

小銘銘最近獲得了一副新的桌遊,遊戲中需要用 m 個騎士攻占 n 個城池。這 n 個城池用 1 到 n 的整數表示。除 1 號城池外,城池 i 會受到另一座城池 fi 的管轄,其中 fi 第 1 行包含兩個正整數 n m,表示城池的數量和騎士的數量。第 2 行包含 n 個整數,其中第 i 個數為 hi...

BZOJ4003 JLOI2015 城池攻占

time limit 20 sec memory limit 128 mb submit 1356 solved 510 submit status discuss 小銘銘最近獲得了一副新的桌遊,遊戲中需要用 m 個騎士攻占 n 個城池。這 n 個城池用 1 到 n 的整數表示。除 1 號城池外,城...