华为 · 模拟 · 算法编程题
华为 模拟 n ≤ 7 时限 1 秒 / 512 MB

题目描述

小歪正在一个占地 n × m 大小的草地上研究他的燃放烟花计划。其中,一些位置已经堆放了杂物,为了便于观察,我们将给出一个 n × m 大小的字符矩阵描述草地。其中,堆放了杂物的位置使用数字 1 标注;其余位置使用数字 0 标注。
小歪已经做好了若干个烟花燃放计划,每一个计划均为一个 n × m 大小的字符矩阵,一一对应草地的每一个方格。在这个计划中,将会被燃放烟花的地块使用数字 1 标注;没有烟花的地块使用数字 0 标注。
他想选择一些计划同时实施,如果某个地块在任意一个计划中被标注为燃放,那么这个地块就会真的燃放上烟花。小歪想要知道,是否存在这样一种选择方法,使得全部有杂物位置均不会燃放烟花,而没有杂物的位置全部燃放上烟花;如果存在,请输出最少数量的计划。

输入输出

输入描述
第一行输入三个整数 n,m,q ( 1 ≤ n,m,q ≤ 7 ) 代表草地的长、草地的宽、计划数量。
此后 n 行,每行输入 m 个字符,代表草地初始状态。
此后 n × q 行,每行输入 m 个字符,用于描述计划。
全部字符仅为数字 0 或 1 。
输出描述
如果不存在满足要求的燃放方案,直接输出 -1 。
否则,请按如下格式输出:
第一行上输出一个整数 p ( 0 ≤ p ≤ q ) 代表使用到的计划数量。
第二行输出 p 个整数代表你所选择的计划编号。编号即输入顺序,从 1 开始计数。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

样例共 2 组

样例 1
输入
2 2 1
00
01
11
10
输出
1
1
样例 2 · 草地初始状态如下图所示。在这个样例中,选择 1,2,3,5 也是一个合法的答案。
输入
7 7 5
1110111
1111111
1100001
0101000
1100001
1111111
1110111
0001000
0000000
0000000
1000001
0000000
0000000
0001000
0000000
0000000
0011100
0000000
0011100
0000000
0000000
0000000
0000000
0000010
0000111
0000010
0000000
0000000
0000000
0000000
0010000
0010000
0010000
0000000
0000000
0000000
0000000
0010000
0010111
0010000
0000000
0000000
输出
4
1 2 3 4

算法解析依据充分

考点:模拟

数据规模 n ≤ 7 | 限制 1 秒 / 512MB | 标准输入输出

题目画像

  • 数据规模:n ≤ 7,m ≤ 7,q ≤ 7
  • 复杂度门槛:允许指数级做法:暴力枚举全部子集 2^n / 回溯搜索 / 状压 DP。
  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

推荐方向:模拟

不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。

思路框架(模拟 通法 · 非本题专属)

  1. 用变量记录题目要求的「状态」(当前值、剩余数量、当前位置等)。
  2. 按题面给出的顺序,把每一步操作写成一段代码,逐条执行。
  3. 每一步执行后更新状态,并在题目要求的位置输出或累计答案。
  4. 注意循环的边界:执行多少次、何时终止、是否能终止。

实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。

复杂度:时间 O(操作次数) | 空间 O(状态数)

该范式的通法易错点

  • 终止条件写错导致死循环或漏做最后一次操作。
  • 状态更新顺序颠倒(先改了下标又用旧下标)。
  • 题目里「最多 / 恰好 / 至少」的语义差别没区分。

对照本题

  • 数据规模 n ≤ 7,允许指数级做法:暴力枚举全部子集 2^n / 回溯搜索 / 状压 DP。

样例解读

样例 1:输入 7 7 5 / 1110111 / 1111111 / 1100001 / 0101000 / 1100001 / 1111111 / 1110111 / 0001000 / 0000000 / 00 → 输出 4 / 1 2 3 4

草地初始状态如下图所示。在这个样例中,选择 1,2,3,5 也是一个合法的答案。

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:华为机试编程模拟题9。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解