解題思路:hash離散化+并查集
首先我們不考慮離散化:s[x]表示(root[x],x]區(qū)間1的個數(shù)的奇偶性,0-偶數(shù),1-奇數(shù)
每個輸入?yún)^(qū)間[a,b],首先判斷a-1與b的根節(jié)點是否相同
a)如果相同表示(a-1,b]之間1的個數(shù)奇偶性已知s((a-1,b])=s[a-1]^s[b],此時只需簡單判斷即可
b)如果不同,我們需要合并兩個子樹,我們將root較大的子樹(例root[a])合并到root較小的子樹(例root[b]),且此時s[root[a]]=s[a]^s[b]^s((a-1,b])
在路徑壓縮的過程中s[i]=s[i]^s[root[i]],s[root[i]]為(root[root[i]], root[i]]區(qū)間內1個數(shù)的奇偶性,例(a, b]區(qū)間1的個數(shù)為偶數(shù),(b, c]區(qū)間1的個數(shù)為奇數(shù),(a, c]之間1的個數(shù)顯然為0^1=1奇數(shù)
原文:POJ 1733 Parity game
幾次市賽由于敲代碼速度跟不上思維而慘掛。。。。。。問題很嚴重啊。。。。。。