摘要:给出一棵n个点的树(以1号点为根),定义dep[i]为点i到根路径上点的个数。众所周知,树上最近公共祖先问题可以用倍增算法解决。现在我们需要算出这个算法精确的复杂度。我们定义计算点i和点j最近公共组先的精确复杂度为bit[dep[i]-dep[lca(i,j)]]+bit[dep[j]-dep[lc 阅读全文
posted @ 2016-10-13 22:08 czllgzmzl 阅读(289) 评论(0) 推荐(0) 编辑
摘要:lyk最近在研究位运算。 它发现除了xor,or,and外还有很多运算。 它新定义了一种运算符“#”。 具体地,可以由4个参数来表示。 ai,j表示 i#j。 其中i,j与a的值均∈[0,1]。 当然问题可以扩展为>1的情况,具体地,可以将两个数分解为p位,然后对于每一位执行上述的位运算,再将这个二 阅读全文
posted @ 2016-10-13 21:14 czllgzmzl 阅读(129) 评论(0) 推荐(0) 编辑
摘要:初始给定一个整数n。每次可以对其做一个操作,这个操作是将n减去他其中的某一位。得到新的一个数字n’,然后继续操作,直到他变成0为止。 比如24这个例子,24 → 20 → 18 → 10 → 9 → 0 Input 单组测试数据。 第一行有一个整数n(0 ≤ n ≤ 10^12) Output 输出 阅读全文
posted @ 2016-10-13 20:02 czllgzmzl 阅读(262) 评论(0) 推荐(0) 编辑
摘要:有这样一个小到大排列的无穷序列S:1, 2, 4, 5, 8......,其中任何一个数转为2进制不包括2个连续的1。给出一个长度为N的正整数数组A,A1, A2......An记录的是下标(下标从1开始)。求S[A1] Xor S[A2] Xor S[A3] ..... Xor S[An]的结果( 阅读全文
posted @ 2016-10-13 18:42 czllgzmzl 阅读(182) 评论(0) 推荐(0) 编辑
摘要:lyk有一棵树,它想给这棵树重标号。 重标号后,这棵树的所有叶子节点的值为它到根的路径上的编号最小的点的编号。 这棵树的烦恼值为所有叶子节点的值的乘积。 lyk想让这棵树的烦恼值最大,你只需输出最大烦恼值对1e9+7取模后的值就可以了。 注意一开始1号节点为根,重标号后这个节点仍然为根。 updat 阅读全文
posted @ 2016-10-13 18:13 czllgzmzl 阅读(420) 评论(0) 推荐(0) 编辑
摘要:一个初始为空的二叉搜索树T,以及1到N的一个排列P: {a1, a2, ..., aN}。我们向这个二叉搜索树T添加这些数,从a1开始, 接下来是 a2, ..., 以aN结束。在每一个添加操作后,输出T上每对节点之间的距离之和。 例如:4 7 3 1 8 2 6 5。最终的二叉树为: 4 / \ 阅读全文
posted @ 2016-10-13 14:10 czllgzmzl 阅读(94) 评论(0) 推荐(0) 编辑