這道題很顯然是個最小割,(u,v,w)代表邊 我當時想到的程度是:先將棋盤黑白染色,白左黑右,x表示白,y表示黑。(s,x1,花費),(x1,x2,代價),(x2,y2,inf),(y2,y1,代價),(y1,t,花費), 然後就不知道該怎樣下去了,發現題解多建了條(x1,y1,inf),恩,挺妙的,認真yy下,這條邊保證了對於乙個點來說,要麼斷掉s,x1,表示買這個點,要麼相連的四個點都選了,要麼這個點不選,不管其他的點。
最短路徑一定是虛樹的所有邊總長*2-直徑,這兩部分可以分開算我們可以考慮每條邊的貢獻,第一部分就列舉每條邊,算一下將這條邊斷開後兩條邊分別有多少個點,組合數搞一搞就好。對於第二部分,我們列舉下兩個端點,如果這兩個沒法成為直徑,那麼就一定有乙個點到達這兩個之一的距離更大,我們就可以dfs下去,判一判哪些點能加入集合即可
我一開始想的是容斥,然而很顯然複雜度gg。
這道題很重要的乙個性質是,如果x和y不能滿足,y和z不能滿足,那麼x和z也不能滿足.
證明:如果x和z能滿足,那麼因為y和z不能滿足,所以按照「使x和z滿足的那個行走方案」來移動「y和z的話」,y最後的狀態(是否出去)和x一定是相反的,所以我們移動x和y時,也用這一套方案,就是滿足的。與x和y不能滿足矛盾,得證。
因此我們可以用冰茶集來維護不能滿足的集合。
這道題實際上很傻,很顯然是要逐位考慮的。
考慮最高的二進位制位,很顯然只有ai這一位=1的時候才可以被考慮,為了方便,不妨找最大的那個數,那麼他就有兩種選法,如果選1,那麼就將這一位異或。如果選0的話,那麼接下來就是隨便選了。(當然我們還是要保證題目限制的,那麼做乙個簡單的dp就ok了。
雅禮集訓Day4
今天炸的1p。t1,給你100次詢問,每次l,r,選 l,r 中的若干數進行異或,求有多少種結果,1 l r 1e18.做法 暴力很顯然是將l,r這些數加入線性基,然後算一下線性基里有多少個數。我們可以考慮線性基的每一位最早在多久被加入。這個就可以看l了,它二進位制的最高位很顯然是一開始就加入線性基...
雅禮集訓Day4
今天炸的1p。t1,給你100次詢問,每次l,r,選 l,r 中的若干數進行異或,求有多少種結果,1 l r 1e18.做法 暴力很顯然是將l,r這些數加入線性基,然後算一下線性基里有多少個數。我們可以考慮線性基的每一位最早在多久被加入。這個就可以看l了,它二進位制的最高位很顯然是一開始就加入線性基...
雅禮集訓 2018 Day4 Magic
傳送門本部分 於 這位大佬 題中要求本質不同的序列數量,不太好搞。我們考慮給相同顏色的牌加上編號,這樣所有牌都不相同。那麼如果我們求出了答案,只需要將答案除以 prod a i 就好了。恰好有 k 對 不能直接求,考慮容斥,如果我們求出了 g x 表示至少有 x 對的方案數,那麼答案即為 sum l...