CF724G Xor-matic Number of the Graph 题解

Description

题目链接

给你一个无向图,有 $n$ 个顶点和 $m$ 条边,每条边上都有一个非负权值。

我们称一个三元组 $(u,v,s)$ 是有趣的,当且仅当对于 $u,v\in [1,n]$,有一条从 $u$ 到 $v$ 的路径(可以经过相同的点和边多次),其路径上的权值异或和为 $s$。对于一条路径,如果一条边经过了多次,则计算异或和时也应计算多次。不难证明,这样的三元组是有限的。

计算所有有趣的三元组中 $s$ 的和对于 $10^9+7$ 的模数

$1\leq n \leq 10^5,1\leq m \leq 2\times 10^5$

Solution

对于所有的环,先把所有路径的异或和建一个线性基 $P$,那么点 $u$ 到点 $v$ 的路径和就是 $d_u\oplus d_v \oplus P$,其中 $d_x$ 表示 $x$ 到根路径的异或和。

考虑按位拆开来做,对于线性基 $P$,有 $S$ 元素,某二进制位为 $w$,则 $P$ 可以表示出 $2^S$ 个不同的数。

  • 如果 $P$ 中存在 $w$ 位为 $1$ 的数,则 $2^S$ 个数中恰有 $2^{S-1}$ 个数的二进制第 $w$ 位为 $1$,另外一半二进制第 $w$ 位为 $0$。
  • 如果 $P$ 中不存在 $w$ 位为 $0$ 的数,显然不能表示出二进制第 $w$ 位为 $1$ 的数,所有 $2^S$ 个数的二进制第 $w$ 位均为 $0$。

那么我们只需要统计每一位有多少种被表示出来的方式,统计答案即可。

考虑直接枚举二进制位 $w$,看下线性基 $P$ 中是否存在二进制位第 $w$ 位为 $1$ 的数即可。

  • 如果存在,那么选择两个点的二进制第 $w$ 位无论是几都可符合题意,并且此时存在 $2^{S-1}$ 条路径使得其异或和该二进制位为 $1$。那么对答案的贡献就是 $2^w\times 2^{S-1}\times C_{n}^2$。
  • 如果不存在,那么选择两个点的二进制第 $w$ 位必须恰有一个为 $1$,并且此时存在 $2^S$ 条路径的异或和第 $w$ 位为 $1$。记第 $w$ 位为 $1$ 的 $d_x$ 的个数为 $x$,那么对答案的贡献就是 $2^w\times 2^S\times x\times(n-x)$。

时间复杂度 $O(n\log^2t_i)$。

Code

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇