问题描述
一个地区包含n个村庄,每个村庄发布了一些委托任务,需要冒险者的帮助。
冒险者公会共有m位冒险者。某位冒险者具有能力值x,这表示他能够完成难度值小于等于x的委托任务。每位冒险者最多只能出击一轮,在这一轮中,他们可以不重复地通过若干个村庄。
当一名冒险者路过一个村庄时,他最多只能完成该村庄的一个委托任务,且这个委托的难度不能超过冒险者的能力值。冒险者也可以选择在路过一些村庄时不完成任何委托任务。同样的,每个委托任务只需要被完成一次。
无论冒险者完成多少任务,这名冒险者出击一轮的代价都等同于冒险者的能力值:
现在的目标是确定一种冒险者的出勤方案,以使得完成所有村庄的委托任务的总代价最小。
输入格式
第一行输入两个整数m和n,分别表示冒险者的数量和村庄的数量,0<
m,n<103。
第二行m个整数x1,Z₂,…T;,…Zm,代表每位冒险者的能力值,0<
x;<10^3,
接下来n行,每行代表一个村庄,每行第一个整数k表示该村庄的委托数量,此后k个不大于10³的正整数表示该村庄的每个委托任务的难度值,
0<k≤10^³。
输出格式
在一行中输出一个整数,表示完成所有委托所需的最小总代价。如果不能完成所有的委托,则直接输出-1。样例输入
34
296
237
15
3223
3111
样例输出
17
样例说明
一种可行的代
习题加餐4. 冒险者工会
最新推荐文章于 2024-05-01 21:37:48 发布