欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
S40405.4-5 破解面板
4-5 破解面板
破解面板
核心区门前立着一面4×4的开关面板。每个开关有两种状态——凸出或凹陷。按一个开关,会同时翻转它所在的整行和整列——凸出的变凹陷,凹陷的变凸出。
"目标是让所有开关都凸出。"Echo说,"但按开关的顺序没有规律。最后一个开关按下去的时候,可能会把前面已经弄好的又翻回去。"
"那就试所有可能。"你说,"16个开关,每个有两种状态——总共六万多种按法。对终端来说不多。""}},{
CC挑眉:"你刚才还说'更复杂'?"
"复杂是指规则复杂。"你蹲下来,把终端连上面板的接口,"但规模小——16个开关,穷举就行。"
你开始写。用一个16位的数字表示所有开关的状态——每一位对应一个开关,0是凹陷,1是凸出。对于每一种可能的按法,用掩码快速计算最终状态:按第 个开关,相当于对第 行和第 列的所有开关做翻转——可以一次性操作整行和整列。
屏幕上开始滚动。第1种、第2种、第100种……第4721种——所有开关都变成了1。
"成了。"你说,"最少6步。"
CC把面板上的六个开关依次按下。每一次按下,整行整列的开关都会发出咔哒声,像是一群机械牙齿在咬合。第六个开关按下后,所有开关同时凸出,面板发出一声清脆的解锁音。
门向上滑开。里面是一条狭窄的走廊,走廊尽头有一扇窗户——透过窗户,能看到47号坑道的全景。
"下面有人。"CC说。
你凑过去看。坑道底部,两个人被铐在椅子上——一个是老周,另一个是头发花白的老人。
题目描述
的开关面板,每个开关凸出或凹陷。按一个开关会翻转它所在的整行和整列。求让所有开关都凸出的最少按法。
输入格式
的矩阵,0表示凹陷,1表示凸出。
输出格式
最少步数,或-1表示无解。
输入样例
-+--
----
----
-+--
输出样例
6
1 1
1 3
1 4
4 1
4 3
4 4
提示
- 用16位整数表示状态,枚举所有按法。
- 位运算快速计算翻转后的状态。
- 规模小,暴力枚举即可。
坑道的三维结构图在你们面前展开——不是普通地图,是一张能量密度热力图。颜色越深的地方,矿物储量越高。Echo说Zero的仓库总是建在富矿带上,因为矿物可以为服务器提供能源。
"要找到最大的富矿区。"你说,"在一片区域里找一块子区域,让它的总能量最高。"
"就像……"CC想了想,"在一片田里找最肥的一块地?"
"对。"
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |