luogu
首先把邊直接放進鄰接矩陣,
很明顯行列式的奇偶和方案數的奇偶一樣。
設 $ a_ $ 為矩陣的該行列的余子式去掉一條邊 $ x,y $ 後是否還為奇數等同於 $ a_ $ 是否為偶數。
至於如何快速求出所有余子式?
伴隨矩陣
$ a^ = ( a_ )^ $ ,t代表轉置。
有結論 $ a^ = a^ | a | $ ,在此不作證明。
然後直接求逆就完事,用bitset優化 $ o(\frac }) $ 。
#includeusing namespace std;
typedef long long lint;
struct patbool operator<(const pat &p)const
while(ch>='0'&&ch<='9')
tar=ret*f;
}templateinline void read(tp& t,args&... args)
namespace rkk
if(!e) return (void)(cerr<<"wdnmd"
for(int i=1;i<=n;i++)if(i!=l&&a[i][l]) a[i]^=a[l]; }}
int main()
}int main()
CF123E Maze(期望dp,樹形dp,式子)
題目鏈結 題目大意 給你一棵樹,邊權都是1,每乙個點有乙個是起點的概率和乙個是終點的概率,你將以起點為根,開始在樹上隨機dfs,每到乙個點,就會將他的所有兒子隨機打亂成序列,然後按照那個隨機順序走完,直到走到終點。求dfs從起點到終點的期望長度。其實一開始看到這個題,還是有點懵逼的啊 根據期望的線性...
CF 453B狀態壓縮dp
題目鏈結 題意 給你n個數 1 n 100 每個數分別是ai 1 ai 30 問你求乙個數列bi,其中bi間的數兩兩的最大公約數為1 bi可能都是1 且使得 思路 既然bi可以全部取1,那麼每個bi的取值必定不超過30 1 30 59。由此可知我們只要知道60以內的所有數的素因子,並用數字標記的方式...
CF123E Maze 期望 樹形dp
題目鏈結 題目鏈結是洛谷翻譯過的。題意 給你一棵樹,邊權都是1,每乙個點有乙個是起點的概率和乙個是終點的概率,你將以起點為根,開始在樹上隨機dfs,直到走到終點。求dfs從起點到終點的期望長度。n 10w 題解 我們考慮一條確定路徑從s到t的期望步數的計算方法。我們發現,這個答案根據期望的線性性,我...