一、题目
二、解法
从部分分的做法入手,当只有加法操作的时候利用拓扑序下传标记的方法是明显的。
但是多了一个乘法,此时不要考虑成"一起乘",这样搅在一起想是很难受的。其实 a a a 数组是个空壳子,因为拿到所有 2 2 2操作的乘积是很容易的(直接拓扑),所以我们只用考虑乘法对加法的贡献。
首先我们从大的操作顺序上去考虑,对于一个 g [ i ] g[i] g[i] 操作,先求出后面 g [ i + 1... n ] g[i+1...n] g[i+1...n] 操作引起的的 2 2 2操作总乘积 m u l mul mul,那么 g [ i ] g[i] g[i] 操作引发的 1 1 1操作次数都要乘上 m u l mul mul ,这时我们再考虑某个操作内部乘法对加法的影响。
类似于只有加法的情况,我们考虑用标记下传的方式来实现他,如图:
就用图示方法下传标记,其中 1 , 2 , 3 1,2,3 1,2,3 表示题目中的访问顺序, m 1 , m 2 m1,m2