#P16309. [Ucpc2022]旅行废品商问题

[Ucpc2022]旅行废品商问题

题目描述

一名废品商要巡回访问 NN 户人家。房屋编号为 11NN

废品商经营的商品共有 MM 种,编号为 11MM

ii 户人家想向废品商出售 pip_i 件商品,这些商品的种类两两不同,分别为

ai,1,ai,2,,ai,pi.a_{i,1},a_{i,2},\ldots,a_{i,p_i}.

每种商品各有一件。废品商可以只选择其中一部分购买。

同时,第 ii 户人家对 qiq_i 种商品感兴趣,分别为

bi,1,bi,2,,bi,qi.b_{i,1},b_{i,2},\ldots,b_{i,q_i}.

当废品商到访时,这户人家会买下废品商当前持有的、所有属于这些种类的商品,无论数量有多少。

同一户人家出售的商品种类与感兴趣的商品种类互不重合。

购买一件种类 jj 的商品需要支付 sjs_j,出售一件种类 jj 的商品可以获得 tjt_j

废品商起初不持有任何商品。他可以按任意顺序访问所有 NN 户人家,但每户必须恰好访问一次。

废品商希望选择访问顺序以及每次购买的商品,使巡回结束时的利润最大。巡回结束后仍留在手中的商品不能带来任何收入。

求能够获得的最大利润。

输入格式

第一行包含两个整数 N,MN,M

1N18,1M1000001\le N\le 18, \qquad 1\le M\le 100000

第二行包含 MM 个整数 s1,s2,,sMs_1,s_2,\ldots,s_M,表示各类商品的购买价格。

第三行包含 MM 个整数 t1,t2,,tMt_1,t_2,\ldots,t_M,表示各类商品的出售价格。

1sj<tj1091\le s_j<t_j\le 10^9

接下来 2N2N 行依次描述每户人家。第 ii 户人家的信息占两行:

  • 第一行先给出 pip_i,随后给出 pip_i 个整数 ai,1,,ai,pia_{i,1},\ldots,a_{i,p_i},表示该户出售的商品种类;
  • 第二行先给出 qiq_i,随后给出 qiq_i 个整数 bi,1,,bi,qib_{i,1},\ldots,b_{i,q_i},表示该户感兴趣的商品种类。

其中

pi,qi0,0pi+qiM.p_i,q_i\ge 0, \qquad 0\le p_i+q_i\le M.

对于每个 ii,序列

ai,1,,ai,pi,bi,1,,bi,qia_{i,1},\ldots,a_{i,p_i},b_{i,1},\ldots,b_{i,q_i}

中的所有整数均在 11MM 之间,且两两不同。

pi=0p_i=0qi=0q_i=0 时,对应输入行只包含一个 0

输出格式

输出按最优顺序访问全部 NN 户人家时能够获得的最大利润。

样例

输入

3 4
2 1 3 4
3 2 5 7
2 2 3
1 4
1 3
2 1 2
2 4 1
0

输出

5