题意简述
给定一个$n<=1e5$,构造一颗$2n$个节点的数。其中,点$i$和$i+n$上都带点权$i$,并且满足:
对于$1<=i<=n$,$i$到$i+n$的路径上(包括两端点),所有点权的异或和为$i$。
举例:
i=3,构造图如下:
其中,4,5,6的点权分别是1,2,3。不难验证,满足题设条件。
如果无解,输出No。
思路
当且仅当$n=2^x$时,无解。(x为自然数)
先构造一个上面样例的图。
然后,如这个图所示:
。
如果$n$是奇数,就把$(4,5)$,$6,7$,$8,9$…$(n-1,n)$都按这样的构造,连接到点$1+n$上就珂以了。
如果$n$是偶数,先把前$n-1$个点按照这样的方式构造一颗树。然后考虑$n$和$2n$。找到比$n$小的最大的$2$的幂$p$,显然,$p->1->(n^p^1)$,这条路径的异或和为$n$。并且,这条路径存在(已证)。那么,我们把$n$链接到$p$上,把$2n$链接到$n^p^1$上,即珂。
代码
1 |
|