显然 如果 a a a 可以到达 b b b ,则有 b b b 可以到 a a a
我们考虑从小的括号序列开始找 当存在边 ( a , b , w ) (a,b,w) (a,b,w) 和 ( c , b , w ) (c,b,w) (c,b,w) 都为左括号
那么就有 a − > b − > c a->b->c a−>b−>c 构成一个合法序列 所以 a , c a,c a,c 互相可以到达
此时就可以把 a , c a,c a,c 缩成一个点 用并查集实现,并维护每一个集合指向它且为左括号的边和当前 s i z e size size
再用新的并查集来当中介去合并新的点
具体实现时 按置合并边(同类型边放一起 用 m a p map map )。当一个并查集当中介时 它的同类型的边对应的点可以合并 所以一个合并可能会引起另一个合并,把它们放入队列处理,队列中存合并操作。
时间复杂度 O ( m log m ) O(m\log m) O(mlogm) 期望得分100
考虑一列一列处理 把矩阵每一列分别计算 相当于求解
首先建出表达式树 子节点为值 A i A_i Ai 非子节点为 < , > , ? <,>,? <,>,?
然后在树上 d p dp dp
S S S 是存数组下标的集合, x x x 是树上的一个节点, s u m x sum_x sumx 为 x x x 子树所有的方案数, l l l 为 x x x 左子树, r r r 为 x x x 右子树
状态 d p ( S , x ) dp(S,x) dp(S,x) 表示:在任意 i ∈ S i\in S i∈S 且 j ∉ S j\notin S j∈/S 有 A i > A j A_i>A_j Ai>Aj 的情况下, x x x 出算出来的结果是 A i A_i Ai( i ∈ S i\in S i∈S )的方案数
那么很容易得到转移方程
x = ′ > ′ x=\ '>' x= ′>′ 时
d p ( S , x ) = d p ( S , l ) × s u m r + ( s u m x − d p ( S , l ) ) × d p ( S , r ) dp(S,x)=dp(S,l)\times sum_r+(sum_x-dp(S,l))\times dp(S,r) dp(S,x)=dp(S,l)×sumr+(sumx−dp(S,l))×dp(S,r)
x = ′ < ′ x=\ '<' x= ′<′ 时
d p ( S , x ) = d p ( S , l ) × d p ( S , r ) dp(S,x)=dp(S,l)\times dp(S,r) dp(S,x)=dp(S,l)×dp(S,r)
x = ′ ? ′ x=\ '?' x= ′?′ 时
d p ( S , x ) = d p ( S , l ) × s u m r + ( s u m x − d p ( S , l ) ) × d p ( S , r ) + d p ( S , l ) × d p ( S , r ) dp(S,x)=dp(S,l)\times sum_r+(sum_x-dp(S,l))\times dp(S,r)+dp(S,l)\times dp(S,r) dp(S,x)=dp(S,l)×sumr+(sumx−dp(S,l))×dp(S,r)+dp(S,l)×dp(S,r)
求得所有的 d p ( S , x ) dp(S,x) dp(S,x) 后 我们开始计算最后的 a n s ans ans
对 A 0 , A 1 , A 2 . . . A m − 1 A_0,A_1,A_2...A_{m-1} A0,A1,A2...Am−1 排完序后得到 A p 0 , A p 1 , . . . A p m − 1 A{p_0},A{p_1},...A_{p_{m-1}} Ap0,Ap1,...Apm−1
答案就是
a n s = ∑ i = 0 m − 1 A p i × ( d p ( { p 0 , p 1 , . . . , p i } , r o o t ) − d p ( { p 0 , p 1 , . . . , p i − 1 } , r o o t ) ) ans=\sum_{i=0}^{m-1}A{p_i}\times(\ dp(\{p_0,p_1,...,p_{i}\},root)-dp(\{p_0,p_1,...,p_{i-1}\},root) \ ) ans=i=0∑m−1Api×( dp({ p0,p1,...,pi},root)−dp({ p0,p1,...,pi−1},root) )
时间复杂度 O ( 2 m ∣ E ∣ + n p o l y ( m ) ) O(2^m∣E∣+npoly(m)) O(2m∣E∣+npoly(m)) 期望得分100
呜呜呜呜呜我对这类题过敏啊呜呜呜
您们好好学数学了吗 呜呜我没有我只会看题解
题解 P7325 【[WC2021] 斐波那契 大佬的题解
orz orz 扑通扑通跪下来