题目描述
给定一个长度为 n 的序列 a1⋯an 以及一个序列 b1⋯bn。
定义一个区间 [l,r] 的权值 w(l,r) 为
$$b_r+\sum\limits_{i=l}^r\sum\limits_{j=i+1}^r[a_i=a_j]$$
其中 [cond] 当且仅当 cond 为真时 =1 否则 =0。
对于每一个 p=1,2⋯n,请你将 1⋯p 划分成若干段,使得每段的权值之和最小,形式化的,你要找出若干下标 x0⋯xk,使得:
- x0=0,xk=p
- ∀i=0,1,⋯k−1,xi<xi+1
在此基础上,使得 i=1∑kw(xi−1+1,xi) 最小。
输入格式
第一行一个整数 n 代表序列长度。
第二行 n 个整数描述一个长度为 n 的序列 a1⋯an。
第三行 n 个整数描述一个长度为 n 的序列 b1⋯bn。
输出格式
一行 n 个整数依次代表每一个前缀的答案。
6
1 2 1 1 2 1
2 2 2 2 2 2
2 2 3 5 5 6
提示
- 对于 20% 的数据,n≤5000。
- 对于 50% 的数据,n≤105。
- 对于 100% 的数据,$n\leq 5\times 10^5,1\leq a_i\leq n,0\leq b_i\leq 10^9$。