#P10395. 青蛙寻青。
青蛙寻青。
题目背景
数次失败后,小青蛙的思想开始发生变化。
他开始寻找自己为青蛙之本。
他开始寻找其他青蛙帮忙。
他在发生蜕变。
他在升华。
他,将变成光!
他给自己取了新名字 —— 青蛙青(qwq),因为名字很可爱。
题目描述
白色光可以被分解成青色光还有很多其他颜色的光。
是一个长度为 ,有 种不同颜色的序列,第 个元素颜色为 (保证颜色 都在 中出现过)。
是一个长度为 的序列,第 个元素颜色为 (保证每个 都是 种颜色中的一种,但不保证 种颜色都在 中出现过)。我们可以修改 中若干个位置的颜色,得到一个长度仍为 的序列 。
我们对 与 中颜色相同的点连这种颜色的一条线段。
如 ,它们之间的连线是这样的:
要求不同颜色的线段两两不交,且 种颜色都要在 中出现,请问最少修改次数是多少?
形式化的,设你修改后的符合要求的序列为 ,那么你需要最小化:
对于上述 的情况,它们之间的连线(红色的 与紫色 之间)出现了相交。
但如果我们把 修改成 ,它们之间的连线没有相交,满足上述条件:
注意:
- 的情况连线也没有相交,但是 包含了 种颜色之外的颜色(有 和 ),因此这个 不合法。
- 的情况连线也没有相交,但是 中没有包含 中所有的颜色(没有 和 ),因此这个 也不合法。
特别的,如果无论怎样修改都无法满足要求,请输出 -1
。
输入格式
第一行共两个整数 ,分别表示序列 的元素个数。
第二行共 个整数,第 个整数表示 。
第三行共 个整数,第 个整数表示 。
输出格式
一行,一个整数,表示满足要求的最小修改次数。
如果无论怎样修改都无法满足要求,请输出 -1
。
3 4
1 2 3
1 3 2 2
2
5 5
1 2 3 4 4
1 2 3 3 3
1
5 10
1 2 3 4 5
1 2 2 3 2 2 2 4 5 4
3
10 2
1 2 1 2 2 2 2 2 2 2
2 2
-1
提示
【样例 #1 解释】
将 修改为 。
可以证明这是修改次数最少的方式。
【样例 #2 解释】
将 修改为 。
可以证明这是修改次数最少的方式。
本题开启捆绑测试以及子任务依赖。
本题时限 2s。
分数 | 子任务依赖 | ||
---|---|---|---|
无 | |||
- 对于 的数据,保证 ,。设 ,保证 均在 中出现过,且 。