AT_arc112_f [ARC112F] Die Siedler
题目描述
すぬけ君正在玩一个使用 $1$ 到 $n$ 号卡牌共 $n$ 种卡牌的游戏。这个游戏中有 $m$ 种卡包,第 $i$ 种卡包中包含卡牌 $j$ 的数量为 $s_{i,j}$。每个卡包中至少有 $1$ 张卡牌。
最开始,すぬけ君拥有卡牌 $j$ 的数量为 $c_j$(保证他总共至少有 $1$ 张卡牌)。
すぬけ君可以按照任意顺序、任意次数进行以下操作:
- 获得一个卡包:选择 $i=1,\dots,m$ 中的一个卡包,获得该卡包中包含的所有卡牌。
- 交换卡牌:选择 $j=1,\dots,n$ 中的一个卡牌,弃掉 $2j$ 张卡牌 $j$,获得 $1$ 张卡牌 $((j\ \text{mod}\ n)+1)$。(必须拥有至少 $2j$ 张卡牌 $j$ 才能进行此操作。)
すぬけ君希望使自己持有的卡牌总数尽可能少。请你求出他能够达到的卡牌总数的最小值。
输入格式
输入按以下格式从标准输入读入。
> $n$ $m$ $c_1$ $c_2$ $\dots$ $c_n$
> $s_{1,1}$ $s_{1,2}$ $\dots$ $s_{1,n}$
> $\vdots$
> $s_{m,1}$ $s_{m,2}$ $\dots$ $s_{m,n}$
输出格式
请输出すぬけ君能够达到的卡牌总数的最小值。
说明/提示
## 限制条件
- $2 \leq n \leq 16$
- $1 \leq m \leq 50$
- $0 \leq s_{i,j},\ c_j < 2j$
- $c_1 + c_2 + \dots + c_n > 0$
- $s_{i,1} + s_{i,2} + \dots + s_{i,n} > 0$
## 样例解释 1
用 $(a_1, a_2, a_3)$ 表示分别持有 $a_1$ 张卡牌 $1$、$a_2$ 张卡牌 $2$、$a_3$ 张卡牌 $3$。可以按如下方式操作,将卡牌总数变为 $1$ 张:
- 获得第 $1$ 种卡包后,状态为 $(0,4,5)$。
- 选择 $j=2$ 进行卡牌交换,状态变为 $(0,0,6)$。
- 选择 $j=3$ 进行卡牌交换,状态变为 $(1,0,0)$。
无法将卡牌总数变为 $0$,因此 $1$ 是最小值。
## 样例解释 2
先获得第 $2$ 种卡包两次,再获得第 $1$ 种卡包,然后多次进行卡牌交换,可以使得只持有 $1$ 张卡牌 $4$ 和 $1$ 张卡牌 $5$。
由 ChatGPT 4.1 翻译