Luogu P3211XOR和路徑(高斯消元)

2022-05-01 00:51:19 字數 1241 閱讀 2297

題目鏈結

唉我個zz……

首先考慮到異或是可以每一位分開算的

好的以後再碰見位運算題我一定先往按位開車上想

然後設f[i]為從i點出發到終點是1的概率

高斯消元解方程組即可。

#include#include

#include

#include

#include

#include

#include

#define maxn 200

#define maxm 50020

using

namespace

std;

inline

long

long

read()

while

(isdigit(ch))

return num*f;

}inline

int calc(int a,int b)

struct

edgeedge[maxm*2

];int

head[maxn],num;

inline

void add(int

from,int to,int

val);

head[

from]=num;

}double

s[maxn][maxn];

double

dl[maxn];

double

ans[maxn];

void gauss(int

n) }

}ans[n]=s[n][n+1

];

for(int i=n-1;i;--i)

}int

main()

}double ans=0

;

for(int i=0;i<32;++i)

else s[j][to]-=1.0/dl[j];

}//for(int j=1;j<=n;++j,printf("\n"))

//for(int k=1;k<=n+1;++k) printf("%.3lf ",s[j][k]);

gauss(n);

//printf("\n");

ans+=ans[1]*(1

<}

printf(

"%.3lf

",ans);

return0;

}

WC2011 最大XOR和路徑

wc2011 最大xor和路徑 本題關鍵是抓住xor的性質 a b a b 異或兩次等於0 1到n,一定是走一條路,可能再往別處走出環 每個環都可以 獨立 走出來 1到n的路徑,可以拆成任意一條路和若干個環拼成的 dfs找環,加入線性基 能變大就異或上去。o m 64 include define ...

WC 2011 最大Xor和路徑

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

WC2011 最大XOR和路徑 題解

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