傳送門
看著很嚇人,其實就是個樹鏈剖分模板。
可支援操作:
1.將節點 x 到 根 的路徑上的值都變成 1
2.將以節點 x 為根的子樹的值都變成 0
1a爽~
——**
1 #include 2 #include 3 #include 4 #include 5view code#define root 1, 1, n
6#define ls now << 1, l, mid
7#define rs now << 1 | 1, mid + 1, r89
const
int maxn = 1000001;10
intn, m, cnt, tim, ans;
11int
head[maxn], to[maxn], next[maxn];
12int f[maxn], son[maxn], size[maxn], deep[maxn], tid[maxn], top[maxn], sum[maxn << 2], turn[maxn << 2
];13
14 inline int
read()
1522
23 inline void add(int x, int
y)24
2930 inline void dfs1(int
u)3142}
4344 inline void dfs2(int u, int
tp)4555}
5657 inline void swap(int &x, int &y)
5861
62 inline void pushup(int
now)
6366
67 inline void pushdown(int now, int
len)
6876
77 inline void update(int x, int ql, int qr, int now, int l, int
r)78
86if(r < ql || l > qr) return
;87 pushdown(now, r - l + 1
);88
int mid = (l + r) >> 1;89
update(x, ql, qr, ls);
90update(x, ql, qr, rs);
91pushup(now);92}
9394 inline void qupdate(int x, int u, int
v)95
102if(deep[u] >deep[v]) swap(u, v);
103update(x, tid[u], tid[v], root);
104}
105106
intmain()
107120 dfs1(0
);121 dfs2(0, 0
);122 m =read();
123for(i = 1; i <= m; i++)
124132
return0;
133 }
軟體包管理
軟體源 ete apt sources.list.d 軟體源索引 var lib apt lists 狀態資訊 var lib dpkg statustonny tonny ftt apt cache pkgnames wc l 軟體包的數目 tonny tonny ftt apt cache po...
軟體包管理
使用rpm命令管理軟體rpm q 軟體包 查詢軟體包 rpm ivh 軟體名 版本號.rpm 安裝 rpm e 軟體名 解除安裝 rpm ql 軟體名 檢視已安裝清單補充 匯入紅帽簽名資訊 rpm import 路徑.rpm gpg key redhat release rpm ivh vh 顯示進...
軟體包管理
在linux作業系統中,有乙個系統軟體包,它的功能類似於windows裡面的 新增 刪除程式 但是功能又比 新增 刪除程式 強很多,它就是red hat package manager 簡稱rpm 此工具包最先是由red hat公司推出的,後來被其他linux開發商所借用。由於它為linux使用者省...