WC2011 最大XOR和路徑

2022-02-05 12:03:25 字數 1009 閱讀 3313

[wc2011]最大xor和路徑

本題關鍵是抓住xor的性質:a^b^a=b

異或兩次等於0

1到n,一定是走一條路,可能再往別處走出環

每個環都可以「獨立」走出來

1到n的路徑,可以拆成任意一條路和若干個環拼成的

dfs找環,加入線性基

能變大就異或上去。

o(m*64)

#include#define il inline

#define reg register int

#define numb (ch^'0')

using

namespace

std;

typedef

long

long

ll;il

void rd(int &x)

namespace

miraclee[

2*m];

int hd[n],cnt=1

;int

n,m;

void add(int x,int

y,ll z)

struct

linebase

else}}

return

; }

ll query(ll x)

}return

ret;

}}lb;

ll f[n];

bool

vis[n];

void dfs(int x,int

in_edge)

else

}}int

main()

dfs(

1,0);

printf(

"%lld\n

",lb.query(f[n]));

return0;

}}signed main()

/*author: *miracle*

date: 2019/1/1 16:08:00

*/

WC 2011 最大Xor和路徑

給你一張n個點,m條邊的無向圖,每條邊都有乙個權值,求 1到n的路徑權值和的最大值。任意一條路徑都能夠由一條簡單路徑 任意一條 在接上若干個環構成 如果不與這條簡單路徑相連就走過去再走回來 那麼在對這些環進行分類 1 直接與簡單路徑相連 相交的重複部分不算就可以了。2 不與簡單路徑相連 我們需要跑過...

WC2011 最大XOR和路徑 題解

首先看到題面,最大 異或 聯想到了什麼?沒錯,線性基。不會的同學請先學習 線性基。但是這道題,因為是在圖里,所以不能直接簡單地用線性基求解。觀察題目中的圖,我們可以發現 嗎?答案一定是由從 1 到 n 的一條路徑上的異或和以及若干環上的異或和構成的。首先我們要理清乙個問題 從 1 到 n 的路徑不用...

題解 WC2011 最大XOR和路徑

luogu 給定 n 個點 m 條邊的帶權無向圖 問所有 1 到 n 的路徑中 邊權異或和最大是多少 其中 n le 50000,m le 100000 且可能有重邊和自環 首先 看到最大異或和 我們很自然的想到用線性基去處理 但線性基對最大異或和的限制十分嚴格 需要數字之間能任意異或 而本題需要選...