专栏文章

题解:AT_arc194_c [ARC194C] Cost to Flip

AT_arc194_c题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mipsok1s
此快照首次捕获于
2025/12/03 17:18
3 个月前
此快照最后确认于
2025/12/03 17:18
3 个月前
查看原文

AT_arc194_c [ARC194C] Cost to Flip

题意

给出两个长度为 nn0101 数组,其中 AA 串为当前数组,BB 为目标数组。给出代价数组 CC
你每次可以进行以下操作(也可以不进行),使最终得到 AABB 相等:
  1. 选择一个数 ii,对 AiA_i 进行异或操作。
  2. 总代价加上 i=1n[Ai=1]Ci{\textstyle \sum_{i=1}^{n}} [A_i=1] C_i
求最小代价。

做法

通过观察,发现对于某一个 AiA_i,存在四种情况。
  1. Ai=0,Bi=0A_i=0,B_i=0 则一定不需要对其进行操作(证明显然)。
  2. Ai=1,Bi=0A_i=1,B_i=0 则一定要尽快把其置为 00,因为徒增代价显然是不利的。
  3. Ai=0,Bi=1A_i=0,B_i=1 则一定要把把 AiA_i 置为 11 的操作放在后面,因为过早增加代价显然也是不利的。
  4. Ai=1,Bi=1A_i=1,B_i=1,则发现可能会出现两种情况,一种是不改变他,使其一直进行贡献,一种是把它拆成 10+0110+01
显然对这个序列可以进行排序,对结果无影响。
我们显然发现会更改的 1111 一定为 1111 中代价较大的部分。
发现 10100101 的顺序已经固定,考虑把加入 1111 的操作看作向这个序列插入。
显然具有单调性。可以枚举插入的位置。

评论

1 条评论,欢迎与作者交流。

正在加载评论...