AT_abc358_c [ABC358C] Popcorn
题目描述
AtCoder Land 有 $1$ 到 $N$ 编号的 $N$ 个爆米花售卖点。爆米花有 $M$ 种口味,分别为口味 $1,2,\dots,M$,但并不是每个售卖点都出售所有口味的爆米花。
高桥君获得了每个售卖点出售哪些口味爆米花的信息。这些信息由 $N$ 个长度为 $M$ 的字符串 $S_1,S_2,\dots,S_N$ 表示,如果 $S_i$ 的第 $j$ 个字符是 `o`,则表示第 $i$ 个售卖点出售第 $j$ 种口味的爆米花,如果是 `x`,则表示不出售。每个售卖点至少出售 $1$ 种口味的爆米花,每种口味的爆米花至少有 $1$ 个售卖点出售。
高桥君想要吃到所有口味的爆米花,但他不想多次移动。请你求出,为了买到所有口味的爆米花,他最少需要访问多少个售卖点。
输入格式
输入按以下格式从标准输入给出。
> $N$ $M$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
输出格式
输出高桥君为了买到所有口味的爆米花,最少需要访问的售卖点数量。
说明/提示
## 限制条件
- $N,M$ 为整数
- $1 \leq N, M \leq 10$
- $S_i$ 是只包含 `o` 和 `x` 的长度为 $M$ 的字符串
- 对于所有 $i\ (1 \leq i \leq N)$,$S_i$ 中至少有一个 `o`
- 对于所有 $j\ (1 \leq j \leq M)$,存在至少一个 $i$ 使得 $S_i$ 的第 $j$ 个字符为 `o`
## 样例解释 1
访问第 $1$ 个和第 $3$ 个售卖点即可买到所有口味的爆米花。无法在一个售卖点买到所有口味,所以答案是 $2$。
由 ChatGPT 4.1 翻译