---算法题---
算法题
acInfinity
CS
展开
-
ZOJ - 3949 Edge to the Root
Edge to the Root题意是给出一个棵树,每条边权都为1,要求在点1和点x之间连一条边,使得连边之后,点1到所有点的路径长度之和最小。 输出最小长度之和。 显然对于一棵树,添一条边之后,形成了一个环,一个在1-x的路径上的环,这个环的形成只对环上的点以及他们的子树上的点的距离产生了影响。 更准确地说,是对环的中点一下的点及子树产生了影响。 cnt数组记录每个点的子树大小+1(加上自己原创 2017-04-16 20:52:44 · 943 阅读 · 0 评论 -
2017 Multi-University Training Contest - Team 1
1001 题意: 给定m,求最大的k满足10^k<2^m分析: 显然kmax=log10(2^m-1), 但m太大,直接计算2^m-1不现实,log10(2^m)计算很方便, Log10 (2^m)=m*log10(2),我们发现只有当x(x=2^m)末位为0时,log10(2^m)!=log10(2^m-1),但x作为2的幂,末位必不为0,所以log10(2^m)=log10(2^m-1)原创 2017-07-29 00:07:17 · 258 阅读 · 0 评论 -
2017 ACM西安网络赛 G题 Xor
题意: 给出一棵树,每个节点有个val,q个询问。 询问格式:u, v, k, 从u到v的路径, 每个k个点取一个,求所有点的val值异或和。 如果没有隔k个取1个的限制的话,那么做法是很显然的,dfs一遍,求出所有点到根的异或和,ans=xor(u, root)^xor(v, root)^(lca(u, v),root)。 现在有步长的限制,取m=sqrt(n), 1)预处理出步长k<=原创 2017-09-18 21:16:38 · 674 阅读 · 0 评论