【MX-X1-T3】「KDOI-05」简单的序列问题
题目描述
给出一个长度为 $n$ 的序列 $a$。定义其前缀和数组 $b_i=\sum_{j=1}^ia_j$。定义其权值 $S=\sum_{i=1}^n(b_i\bmod 2)$。
你可以对序列 $a$ 进行若干次如下操作:
* 交换 $a_i,a_j$,花费 $c_i+c_j$ 元,其中 $c$ 为给定序列;
对于 $i=0\sim n$,求使得 $S=i$ 的最少钱数。如果不可能,输出 $-1$。
输入输出格式
输入格式
**本题包含多组测试数据。**
第一行一个正整数 $T$,表示测试数据组数。
对于每组测试数据:
第一行一个正整数 $n$,表示序列长度。
第二行 $n$ 个正整数,表示序列 $a$。
第三行 $n$ 个正整数,表示序列 $c$。
输出格式
对于每组测试数据:
一行,$n+1$ 个整数,第 $i$ 个表示 $S=i-1$ 的最少钱数。如果不可能,输出 $-1$。
输入输出样例
输入样例 #1
3
3
1 2 3
1 1 1
5
1 2 3 4 5
2 5 3 6 4
10
1 8 3 5 2 6 3 4 6 2
3 2 7 1 8 2 5 8 3 1
输出样例 #1
-1 2 0 -1
-1 -1 7 0 9 -1
-1 -1 5 3 4 0 7 8 6 -1 -1
说明
**【样例解释】**
对于第一组数据,初始 $\sum_{i=1}^n(b_i\bmod 2)=2$,故使 $S=2$ 最少要花 $0$ 元。
交换 $a_1,a_2$ 即可使 $\sum_{i=1}^n(b_i\bmod 2)=1$,故使 $S=1$ 可以花费 $2$ 元。可以证明这是最优解。
可以证明不存在交换方案使得 $S=0$ 或 $S=3$。
**【数据范围】**
**本题采用捆绑测试。**
| 子任务编号 | 分值 | $n\leq$ | $\sum n\leq$ | 特殊性质 |
|:--:|:--:|:--:|:--:|:--:|
| $1$ | $10$ | $5$ | $50$ | 无 |
| $2$ | $10$ | $500$ | $500$ | $a$ 中至多有 $3$ 个奇数 |
| $3$ | $15$ | $30$ | $150$ | 无 |
| $4$ | $25$ | $100$ | $500$ | 无 |
| $5$ | $10$ | $500$ | $500$ | $c_i=1$ |
| $6$ | $30$ | $500$ | $500$ | 无 |
对于 $100\%$ 的数据:$1\leq n,\sum n\leq500$,$1\leq a_i\leq10^9$,$1\leq c_i\leq10^6$,$1\leq T\leq500$。