讓我們異或吧 DFS 位運算技巧

2021-10-11 13:31:09 字數 1456 閱讀 4216

中文題意就不需要分析了吧

我在洛谷上面搜的是lca的標籤,但是這道題跟lca好像關係不太大?

首先因為有n - 1條邊,首先我們可以確定這是一條樹,然後我們去求異或值的時候,可以先求出點到跟節點的異或值,然後把待求的兩點跟根節點之間的異或值異或一下就好了,因為重複的部分會進行抵消

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

typedef pair<

int,

int> pii;

const

int inf =

0x3f3f3f3f

;const

int n =

100010

;int num[n]

;int h[n]

,ne[n *2]

,e[n *2]

,w[n *2]

,idx;

int f[n][21

];int d[n]

;int n,m;

void

add(

int a,

int b,

int c)

void

dfs(

int u,

int fa,

int res)

}int

main()

dfs(1,

1,0)

;scanf

("%d"

,&m)

;while

(m--

)return0;

}/**

*  ┏┓   ┏┓+ +

* ┏┛┻━━━┛┻┓ + +

* ┃       ┃

* ┃   ━   ┃ ++ + + +

* ████━████+

* ◥██◤ ◥██◤ +

* ┃   ┻   ┃

* ┃       ┃ + +

* ┗━┓   ┏━┛

*   ┃   ┃ + + + +code is far away from  

*   ┃   ┃ + bug with the animal protecting

*   ┃    ┗━━━┓ 神獸保佑,**無bug 

*   ┃        ┣┓

*   ┃        ┏┛

*  ┗┓┓┏━┳┓┏┛ + + + +

*    ┃┫┫ ┃┫┫

*    ┗┻┛ ┗┻┛+ + + +

*/

讓我們異或吧

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

洛谷P2420 讓我們異或吧 DFS

給出一棵樹,每條邊有乙個權值,輸出指定點的路徑異或值。首先,這到題是我在想刷lca lca的時候遇到的,結果這道標籤是lca lca的題目我卻想不到為什們要用lca lca,乙個dfs dfs就可以過。其實要求兩個點的路徑異或值就是xor roo t x xor roo t x xor roo t ...

洛谷 2420 讓我們異或吧

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