#z1082. 精灵球重组计划
精灵球重组计划
题目描述
小T 是精灵训练师,负责管理编号为 1 到 N 的精灵球。由于之前的混乱配对,现在每个精灵球中可能有多个精灵或没有精灵。每个精灵 i 初始位于精灵球 a[i] 中,并且具有亲密值 w[i]。
小T 可以进行以下操作:
1、将任意一个精灵从当前所在的精灵球移动到其他任意一个精灵球
2、每次移动需要消耗等同于该精灵亲密值的能量
目标是通过最少的总能量消耗,使得最终每个精灵球中恰好包含一个精灵(不需要考虑具体是哪个精灵)。
输入格式
第一行包含一个正整数 N,表示精灵球和精灵的数量。
第二行包含 N 个正整数 a[1], a[2], ..., a[N],其中 a[i] 表示精灵 i 初始所在的精灵球编号。
第三行包含 N 个正整数 w[1], w[2], ..., w[N],其中 w[i] 表示精灵 i 的亲密值。
输出格式
输出一个整数,表示使每个精灵球恰好包含一个精灵所需的最小总能量消耗。
输入输出样例
输入样例 #1
5
2 2 3 3 5
33 40 2 12 16
输出样例 #1
35
输入样例 #2
12
3 6 7 4 12 4 8 11 11 1 8 11
3925 9785 9752 3587 4013 1117 3937 7045 6437 6208 3391 6309
输出样例 #2
17254
样例解释 #1
初始状态:
精灵球 2:精灵 1(33)、精灵 2(40)
精灵球 3:精灵 3(2)、精灵 4(12)
精灵球 5:精灵 5(16)
最优方案:
将精灵 1(33)从精灵球 2 移动到精灵球 1
将精灵 3(2)从精灵球 3 移动到精灵球 4
总消耗:33 + 2 = 35
注意:题目要求的是每个精灵球恰好一个精灵,不要求具体是哪个精灵,因此可以更灵活地安排。
说明/提示
数据范围
对于 20% 的测试数据,N ≤ 10;
对于 100% 的测试数据,1 ≤ N ≤ 10^5,1 ≤ a[i] ≤ N,1 ≤ w[i] ≤ 10^6;
输入保证所有数均为正整数。