【hdu6121】 Build a tree 简单数学题

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6121

 

我好像推得挺久的诶.....

题目大意:给你一棵有$n$个点的树,根节点为$0$,对于其余节点$x$,它的父亲节点为$\left \lfloor \frac{x-1}{k} \right \rfloor$,求所有子树的大小的异或和。其中$n,k≤10^18$

此题要分$k=1$和$k≠1$讨论。

对于$k=1$的情况,显然是求$1$到$n-1$的异或和,二进制逐位分析该位为$1$的次数即可。时间复杂度$O(log_k\ n)$。

未完待续

posted @ 2018-04-19 22:37  AlphaInf  阅读(153)  评论(0编辑  收藏  举报