AT_utpc2021_i Card Decks

题目描述

有 $N$ 个牌堆,每个牌堆由 $M$ 张卡片组成,每张卡片上分别写有 $1$ 到 $M$ 的某个数字,每个数字在每个牌堆中只出现一次。对于第 $i$ 个牌堆,从上到下第 $j$ 张卡片上写着 $a_{i,j}$。 你可以对这些牌堆任意顺序、任意次数地进行以下两种操作: - 操作 $1$:选择一个牌堆,将最上面的一张卡片移动到同一个牌堆的最底部。 - 操作 $2$:如果所有 $N$ 个牌堆最上面的卡片上的数字都相同,则可以把这些卡片全部取出并吃掉。 请问,为了吃掉所有卡片,最少需要进行多少次操作 $1$?

输入格式

输入以如下格式从标准输入读入。 > $N$ $M$ > $a_{1,1}$ $a_{1,2}$ $\ldots$ $a_{1,M}$ > $\vdots$ > $a_{N,1}$ $a_{N,2}$ $\ldots$ $a_{N,M}$

输出格式

请输出一个整数,表示最少需要进行多少次操作 $1$。

说明/提示

### 限制条件 - 输入均为整数。 - $1 \leq N \leq 2 \times 10^5$ - $1 \leq M \leq 22$ - $1 \leq a_{i,j} \leq M$ - $a_{i,j} \neq a_{i,k}$($j \neq k$) ### 部分得分 - 若能正确解决 $1 \leq M \leq 16$ 的数据,将获得 $30$ 分。 ### 样例说明 1 可以按如下方式进行操作: - 对牌堆 $2$ 执行操作 $1$。 - 对牌堆 $4$ 执行操作 $1$。 - 执行操作 $2$(此时所有牌堆最上面的卡片都是 $2$)。 - 对牌堆 $1$ 执行操作 $1$。 - 对牌堆 $2$ 执行操作 $1$。 - 执行操作 $2$(此时所有牌堆最上面的卡片都是 $1$)。 - 执行操作 $2$(此时所有牌堆最上面的卡片都是 $3$)。 由 ChatGPT 4.1 翻译