当前位置: 首页 > news >正文

95.费解的开关

95.费解的开关

用枚举的思想,把第一行先枚举了

(通过:

for (int op = 0; op < 32; op ++ )for (int i = 0; i < 5; i ++ )if (op >> i & 1)

根据第i行去trun第i+1行来改变第i行

trun的改变利用了偏移量来简化

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int N = 6;
char g[N][N], backup[N][N];
int dx[] = {0, 0, 0, -1, 1}, dy[] = {0, -1, 1, 0, 0};void getg()
{for (int i = 0; i < 5; i ++ ) cin >> g[i];return;
}
void print()
{for (int i = 0; i < 5; i ++ ) cout << backup[i] << endl;cout << endl;return;
}
void bkup()
{memcpy(backup, g, sizeof g);// for (int i = 0; i < 5; i ++ ) backup[i] = g[i];return;
}void trun(int x, int y)
{int a, b;for (int i = 0; i < 5; i ++ ){a = x + dx[i], b = y + dy[i];if (a >= 0 && a < 5 && b >= 0 && b < 5) backup[a][b] ^= 1;}
}int main()
{int T;cin >> T;while (T -- ){getg();int ans = 10;// print();// 遍历第一行情况for (int op = 0; op < 32; op ++ ){// 第一行的一种情况bkup();int cnt = 0;for (int i = 0; i < 5; i ++ ){if (op >> i & 1){cnt++;trun(0, i);}}for (int i = 0; i < 4; i ++ ){for (int j = 0; j < 5; j ++ ){if (backup[i][j] == '0'){cnt++;trun(i + 1, j);}}}bool drak = false;for (int i = 0; i < 5; i ++ ) if (backup[4][i] == '0') drak = true;if (!drak) ans = min(ans, cnt);}if (ans > 6) ans = -1;cout << ans << endl;}return 0;
}
http://www.rkmt.cn/news/5185.html

相关文章:

  • Spotify 音乐ML练习数据集含158 个特征,11
  • 最新药物数据集下载:来自Drugs
  • 400小时大规模南昌方言数据集助力方言保护、AI语音识别技术开发与文化传承研究,覆盖多样化场景与说话者,专业采集高质量音频与文本标注,支持深度学习、语音模型训练、方言教学工具及本地化智能语音交互应用
  • 350+张高清晰度冲积土、黑土、煤渣土、红土四类土壤类型图像资源 ,专为计算机视觉算法训练与地球科学研究设计,支持精准农业土壤识别、地质勘探辅助分析及环境监测应用,提升土壤分类模型准确性
  • 阶跃星辰开源Step-Video-T2V模型:300亿参数打造高保真视频生成新标杆
  • 多多报销小程序系统详解
  • 第0章 矿卡EBAZ4203爆改zynq开发板介绍和VIVADO的安装
  • 无痕检测是否注册iMessage服务,iMessages数据筛选,iMessage蓝号检测协议
  • Thundbird无法获取自签证书。
  • Gitee推出SBOM扫描功能:为开源供应链安全构筑数字防火墙
  • mysql连表查询,轻松掌握多表数据关联技巧
  • Qt-捕获摄像头画面
  • .NET驾驭Word之力:COM组件二次开发全攻略之连接Word与创建你的第一个自动化文档
  • 用户沉默之日,产品衰亡之时:逃离迭代中的“沉默陷阱”
  • 从工具到生态:现代Bug管理系统的平台化转型之路
  • JavaWeb基础
  • uni-app项目支付宝端Input不受控
  • 开启研究生学习阶段
  • 李航统计学习方法第二版 学习笔记
  • 如何拥有自己的一台永久免费云主机/云服务器
  • 发现一个新的资源论坛 - 小小程序员
  • 深入解析:Unity:XML笔记(二)——Xml序列化、反序列化、IXmlSerializable接口
  • C# Avalonia 13- MoreDrawing - CustomPixelShader
  • 使用标签Tag控制蒙太奇的触发时机-playmontageAndWait-Send GameplayEvent-WaitGameplayEvent
  • GAS_Aura-Spawn FireBolt from Event
  • Java 微服务架构中的实践与挑战
  • 国产IT运维卡壳?乐维智能运维体让运维团队告别“适配难、监控乱”
  • 在选择2025年代码托管平台时,Gitee和GitHub作为国内外两大主流平台各有优势。本文将从多个维度进行对比分析,帮助开发者做出更适合自身需求的选择。
  • android使用socks5的教程
  • 【IEEE-智造领空天,寰宇链未来】第五届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2025)