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

#题解#牛客: 小心火烛的歪#枚举组合#位运算#dfs#

传送门

分析

1.这是一个枚举组合求最优的问题:集合大小q为7,可以用位运算来进行组合枚举

2.若点火方案f[i][j]==g[i][j]=1则,该方案一定不能用

3.令 g[i][j]+=f[i][j],若该方案可用且在枚举子集内,最终g中没有0则该子集符合条件

代码实现

#include<bits/stdc++.h>
using namespace std;
int n, m, q;
int  g[10][10], f[10][10][10], book[10];
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int kk = 0;cin >> n >> m >> q;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++){char c;cin >> c;g[i][j] = c - '0';kk += g[i][j];}int no = 0;for (int k = 0; k < q; k++)for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++){char c;cin >> c;f[k][i][j] = c - '0';if (f[k][i][j] == g[i][j] and g[i][j] == 1){if (!book[k])no++;book[k] = 1;}}if (kk == n * m)//g本身已经符合无0条件{cout << 0;return 0;}if (no == q)//所有方案都不能用{cout << -1;return 0;}bool check = 0;//记录是否有解int ans = q;//记录最小方案数int N = (1 << q);int method = N - 1;//记录方案集for (int x = 0; x < N; x++)//枚举方案集{int tmp[10][10];memcpy(tmp, g, sizeof(tmp));for (int k = 0; k < q; k++)if (!book[k] and x >> k & 1 )//k可用且在方案集x中for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)tmp[i][j] += f[k][i][j];bool flag = 1;//记录x是否符合无0条件for (int i = 1; i <= n; i++){if (!flag) break;for (int j = 1; j <= m; j++)if (tmp[i][j] == 0){flag = 0;//有0则x不符合无0条件break;}}if (flag)//x是个解{check = 1;//有解int y = x;int cnt = 0;for (; y; y -= y & -y)//求x在二进制下有多少1,即这个集合的大小,即方案数cnt++;if (ans > cnt)//更新{ans = cnt;method = x;}}}if (check)//有解则输出{cout << ans << "\n";for (int k = 0; k < q; k++)if ( method >> k & 1 )cout << k + 1 << " ";}else//无解cout << -1;return 0;
}

Trick/错误总结

  1. 范围较小的枚举组合考虑位运算

  2. 看清输入格式 数与数之间有无空格 //md调了好久

  3. 不要在输入时break之类 //md我在干什么

http://www.rkmt.cn/news/48858.html

相关文章:

  • 2025.11.12 周作业 43(并非)速通
  • 2025 年 11 月螺丝打包机,五金打包机,称重打包机厂家最新推荐,权威测评排名与工业采购选择指南!
  • C++ const总结
  • 11.13 程序员的修炼之道:从小工到专家 第五章 弯曲或折断 - GENGAR
  • 详细介绍:Web爬虫指南
  • 升鲜宝分拣系统 具体实现(一)
  • 一个好题2
  • LucaOne架构
  • 实用指南:Windows安装MongoDB保姆级教程(图文详解)
  • linux USB --- 监听 USB 角色
  • 温州工友自动包装设备有限公司:专注螺丝五金智能包装,助力企业降本增效
  • 25.11.09
  • [豪の学习笔记] Spring框架学习碎碎念#5
  • LucaOne模型的词汇表系统
  • 2025 年终端数据安全软件公司推荐数篷科技(深圳)有限公司,数据安全领域的坚实力量
  • 网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7] - 教程
  • 20232314 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • dify插件开发
  • 其他游戏攻略
  • 11.13 模拟赛 T3
  • 动态路由协议
  • 2025-11-13 PQ v.Next日志记录
  • vscode集成MCP Server
  • 框架架构设计师备考第41天——软件可靠性建模、管理与设计​
  • 奇怪的问题(们)
  • 基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例 - 实践
  • 2025智慧康养/智慧养老标杆机构推荐榜:教之道五星领跑 实训室建设与虚拟仿真领域 3 家公司凭实力上榜
  • coze 搭建能写文案导出word pdf
  • Siemens PLCSIM V18
  • 《密码系统设计》第十二周预习