Codeforces Round #112 (Div. 2)
C. Another Problem on Strings
题意
- 给一个01字符串,求包含(k)个1的子串个数。
思路
- 统计字符1的位置,两端用0填充。
- (k=0)需要特判。
代码
D. Beard Graph
题意
- 一棵(N(N le 10^5))个点的树,每条边被染成黑色或白色,初始都是黑色。
- (M(M le 3 imes 10^5))次操作,要么对边染色,要么询问((a, b))路径上的边是否都是黑色,如果是的话求出两点距离。
思路
- 裸树链剖分
代码
E. Compatible Numbers
题意
- 给(N(N le 10^6))个数(a_i(1 le a_i le 10^{22}))
- 对于每个(a_i),找到任意一个(a_j),使得(a_i and a_j = 0),不存在则输出-1。
思路
- 相当于在(a_i)补集中找原数组的数
- 用(dp[mask])表示(a_i)是(mask)子集的一个数,那么(O(22 imes 2^{22}))转移一下即可。
代码