/ Vijos / 题库 /

装备购买

装备购买

时间限制:1秒  内存限制:256M


【题目描述】

  脸哥最近在玩一款神奇的游戏,这个游戏里有 \(n\) 件装备,每件装备有 \(m\) 个属性,用向量 \(z_i=(a_1,...,a_m)\) 表示 \((1≤i≤n, 1≤j≤m)\),每个装备需要花费 \(c_i\),现在脸哥想买一些装备,但是脸哥很穷,所以总是盘算着 怎样才能花尽量少的钱买尽量多的装备。对于脸哥来说,如果一件装备的属性能用购买的其他装备组合出(也就是 说脸哥可以利用手上的这些装备组合出这件装备的效果),那么这件装备就没有买的必要了。

  严格的定义是,如果 脸哥买了 \(z_{i1},…,z_{ip}\) 这 \(p\) 件装备,那么对于任意待决定的 \(z_h\),不存在 \(b_1,…,b_p\) 使得 \(b_1z_{i1} + ... + b_pz_{ip} = z_h\)( \(b\) 是实数),那么脸哥就会买 \(z_h\),否则 \(z_h\) 对脸哥就是无用的了,自然不必购买。

  举个例子,\(z_1\) =(1,2,3),\(z_2\) =(3,4,5),\(z_h\) =(2,3,4),\(b_1\) =1/2,\(b_2\) =1/2,就有 \(b_1z_1 + \)b_2z_2 = z_h\(,那么如果脸哥买了 \)z_1\( 和 \)z_2\( 就不会再买 \)z_h$ 了。

  脸哥想要在买下最多数量的装备的情况下花最少的钱,你能帮他算一下吗?

【输入格式】

  第一行两个数 \(n,m\)。
  接下来 \(n\) 行,每行 \(m\) 个数,其中第 \(i\) 行描述装备 \(i\) 的各项属性值。
  接下来一行 \(n\) 个数, 其中 \(c_i\) 表示购买第 \(i\) 件装备的花费。

【输出格式】

  一行两个数,第一个数表示能够购买的最多装备数量,第二个数表示在购买最多数量的装备的情况下的最小花费。

【输入输出样例】

 Input

3 3
1 2 3
3 4 5
2 3 4
1 1 2

 Output

2 2

【数据限制】

  对于 \(100\%\) 的数据,\(1≤n,m≤500\),\(1≤a_j≤500\)

【来源】

  Mr.he**

信息

ID
2720
难度
9
分类
线性代数 | 高斯消元 点击显示
标签
(无)
递交数
2
已通过
1
通过率
50%
被复制
1
上传者