左偏樹裸題 合併+lazytag即可
每個點合併兒子然後彈出所有然後每個騎士直接dep[x]-dep[y]掛了的節點和初始節點的深度差即可
樣例太水了注意要判每個節點萬一騎士掛完了是空的qaq
//view codelove 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()
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 號城池外,城...