CF1519F.Chests and Keys
NOI/NOI+/CTSC
通过率:0%
时间限制:3.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Alice and Bob play a game. Alice has got n treasure chests (the i-th of which contains ai coins) and m keys (the j-th of which she can sell Bob for bj coins).
Firstly, Alice puts some locks on the chests. There are m types of locks, the locks of the j-th type can only be opened with the j-th key. To put a lock of type j on the i-th chest, Alice has to pay ci,j dollars. Alice can put any number of different types of locks on each chest (possibly, zero).
Then, Bob buys some of the keys from Alice (possibly none, possibly all of them) and opens each chest he can (he can open a chest if he has the keys for all of the locks on this chest). Bob's profit is the difference between the total number of coins in the opened chests and the total number of coins he spends buying keys from Alice. If Bob's profit is strictly positive (greater than zero), he wins the game. Otherwise, Alice wins the game.
Alice wants to put some locks on some chests so no matter which keys Bob buys, she always wins (Bob cannot get positive profit). Of course, she wants to spend the minimum possible number of dollars on buying the locks. Help her to determine whether she can win the game at all, and if she can, how many dollars she has to spend on the locks.
Alice 和 Bob 进行一场游戏。Alice 拥有 n 个宝箱(其中第 i 个宝箱内含 ai 枚金币)以及 m 把钥匙(其中第 j 把钥匙她可以以 bj 枚金币的价格卖给 Bob)。
首先,Alice 在宝箱上加装若干把锁。一共有 m 种类型的锁,第 j 种锁只能用第 j 把钥匙打开。在第 i 个宝箱上加装一把第 j 种类型的锁,Alice 需要花费 ci,j 美元。Alice 可以在每个宝箱上加装任意数量(包括零把)不同类型的锁。
接着,Bob 向 Alice 购买其中一些钥匙(可能不买,也可能全部购买),并打开所有他能打开的宝箱(即:只要他拥有该宝箱上所有锁所对应的钥匙,他就能打开该宝箱)。Bob 的收益等于他成功打开的所有宝箱中金币总数减去他向 Alice 购买钥匙所花费的金币总数。若 Bob 的收益严格为正(即大于零),则 Bob 获胜;否则 Alice 获胜。
Alice 希望在某些宝箱上加装某些锁,使得无论 Bob 购买哪些钥匙,她总能获胜(即 Bob 无法获得正收益)。当然,她希望在加锁上花费的美元总数尽可能少。请你帮她判断:她是否有可能获胜?如果可以,她最少需要花费多少美元来加装锁?
输入格式
The first line contains two integers n and m (1≤n,m≤6) — the number of chests and the number of keys, respectively.
The second line contains n integers a1,a2,…,an (1≤ai≤4), where ai is the number of coins in the i-th chest.
The third line contains m integers b1,b2,…,bm (1≤bj≤4), where bj is the number of coins Bob has to spend to buy the j-th key from Alice.
Then n lines follow. The i-th of them contains m integers ci,1,ci,2,…,ci,m (1≤ci,j≤107), where ci,j is the number of dollars Alice has to spend to put a lock of the j-th type on the i-th chest.
第一行包含两个整数 n 和 m(1≤n,m≤6),分别表示宝箱的数量和钥匙的数量。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤4),其中 ai 表示第 i 个宝箱中的金币数量。
第三行包含 m 个整数 b1,b2,…,bm(1≤bj≤4),其中 bj 表示 Bob 向 Alice 购买第 j 把钥匙所需花费的金币数量。
接下来是 n 行。其中第 i 行包含 m 个整数 ci,1,ci,2,…,ci,m(1≤ci,j≤107),其中 ci,j 表示 Alice 在第 i 个宝箱上安装第 j 种类型锁所需花费的美元数量。
输出格式
If Alice cannot ensure her victory (no matter which locks she puts on which chests, Bob always has a way to gain positive profit), print −1.
Otherwise, print one integer — the minimum number of dollars Alice has to spend to win the game regardless of Bob's actions.
如果爱丽丝无法确保自己获胜(即无论她将锁放在哪些宝箱上,鲍勃总能获得正收益),则输出 −1。
否则,输出一个整数——爱丽丝为确保无论鲍勃如何行动都能获胜所需花费的最少美元数。
输入输出样例
输入#1
2 3 3 3 1 1 4 10 20 100 20 15 80
输出#1
205
输入#2
2 3 3 3 2 1 4 10 20 100 20 15 80
输出#2
110
输入#3
2 3 3 4 1 1 4 10 20 100 20 15 80
输出#3
-1
说明/提示
In the first example, Alice should put locks of types 1 and 3 on the first chest, and locks of type 2 and 3 on the second chest.
In the second example, Alice should put locks of types 1 and 2 on the first chest, and a lock of type 3 on the second chest.
在第一个例子中,Alice 应在第一个宝箱上安装类型为 1 和 3 的锁,在第二个宝箱上安装类型为 2 和 3 的锁。
在第二个例子中,Alice 应在第一个宝箱上安装类型为 1 和 2 的锁,在第二个宝箱上安装类型为 3 的锁。
输入解题思路,AI测评打分。不知道怎么写?