洛谷P2420 讓我們異或吧 DFS

2022-09-03 05:00:11 字數 902 閱讀 3651

給出一棵樹,每條邊有乙個權值,輸出指定點的路徑異或值。

首先,這到題是我在想刷lca

lca的時候遇到的,結果這道標籤是lca

lca的題目我卻想不到為什們要用lca

lca,乙個dfs

dfs就可以過。

其實要求兩個點的路徑異或值就是xor

[roo

t][x

]xor

[roo

t][x

]^xor

[roo

t][y

]xor

[roo

t][y

],因為重複的路徑會被重複異或掉,就變成了0。

一邊dfsd

fs就可以求出所有點到roo

troo

t的路徑異或值,然後就可以o(1

)o(1

)輸出了。

#include

#include

#define n 100100

using

namespace std;

int n,m,tot,x,y,z,xor[n]

,head[n]

;struct edge

e[n*2]

;void

add(

int from,

int to,

int dis)

void

dfs(

int x,

int fa,

int k)

intmain()

dfs(1,

0,0)

;scanf

("%d"

,&m)

;while

(m--

)return0;

}

洛谷 P2420 讓我們異或吧

異或是一種神奇的運算,大部分人把它總結成不進製加法.在生活中 xor運算也很常見。比如,對於乙個問題的回答,是為1,否為0.那麼 a是否是男生 xor b是否是男生 a和b是否能夠成為情侶 好了,現在我們來製造和處理一些複雜的情況。比如我們將給出一顆樹,它很高興自己有n個結點。樹的每條邊上有乙個權值...

洛谷 P2420 讓我們異或吧

異或是一種神奇的運算,大部分人把它總結成不進製加法.在生活中 xor運算也很常見。比如,對於乙個問題的回答,是為1,否為0.那麼 a是否是男生 xor b是否是男生 a和b是否能夠成為情侶 好了,現在我們來製造和處理一些複雜的情況。比如我們將給出一顆樹,它很高興自己有n個結點。樹的每條邊上有乙個權值...

洛谷P2420 讓我們異或吧(樹上異或)

題目描述 異或是一種神奇的運算,大部分人把它總結成不進製加法.在生活中 xor運算也很常見。比如,對於乙個問題的回答,是為1,否為0.那麼 a是否是男生 xor b是否是男生 a和b是否能夠成為情侶 好了,現在我們來製造和處理一些複雜的情況。比如我們將給出一顆樹,它很高興自己有n個結點。樹的每條邊上...