【无标题】

枚举 x,由于 S i ≤ 2 ∗ 1 0 5 S_i\le 2*10^5 Si2105,所以 x x x O ( l o g V ) O(logV) O(logV) 级别。

将所有 S i ≤ 2 x S_i \le 2^x Si2x 的数加入线性基中,我们有结论, x x x 成立当且仅当,所有 i ⊆ [ 0 , 2 x ) i \subseteq [0,2^x) i[0,2x) 都可以被线性基表示出。

先证必要性,发现如果有一个合法排列,那么我们一定可以使它的第一项变为 0 0 0,于是显而易见整个排列都可以被线性基表示。

再证明充分性,如果线性基满足了条件,那么线性基里肯定恰有 x x x 个数,且刚好组成了 [ 0 , 2 x ) [0,2^x) [0,2x),将每个数都用一个 x x x 位二进制表示,意为它等于线性基中这些数的异或和,于是使用格雷码即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值