PTA 2813:画家问题 (熄灯问题)

PTA 2813:画家问题 (熄灯问题)

经典的熄灯问题,思路就不过多阐述,csdn都有

#include <bits/stdc++.h>
using namespace std;
int num[20];
int num2[20];
int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {string str;cin >> str;for (int j = 0; j < n; j++) {// 如果是开灯状态,标记上1,反之0num[i] |= str[j] == 'w' ? 1 << j : 0;}// 存原图num2[i] = num[i];}// 结果可不可行bool flag = false;// 最小操作次数int ans = -1;// 2 ==> 00, 01, 10, 11,// 2  0 1 2 3// 0 ~ 2^2 - 1 (1 << 2) -1// 枚举N个格子的状态for (int k = 0; k < (1 << n); k++) {// 第0层的状态为枚举的Knum[0] = k;// 这次枚举的开关灯次数int cnt = 0;// 还原图,因为上次实在num上修改的,所以要还原for (int i = 1; i <= n; i++) {num[i] = num2[i];}// 修改灯的状态for (int i = 1; i <= n; i++) {for (int j = 0; j < n; j++) {// 01 & 10 == 00 == 0// 如果上一层的第j个灯是开的,则这一层需要关闭if (num[i - 1] & (1 << j)) {// 次数++cnt++;// 修改当前灯的状态num[i] ^= (1 << j);// 左边灯的状态if (j > 0) num[i] ^= (1 << (j - 1));// 右边灯的状态if (j < n - 1) num[i] ^= (1 << (j + 1));// 下一层第j个灯的状态num[i + 1] ^= (1 << j);// 上一层第j个灯不用修改,因为最后我们只需要判断最后一层灯的状态}}}// 如果最后一层灯都关闭了,则二进制上都是0,所以结果为0if (num[n] == 0) {flag = true;// 更新答案if (ans == -1 || ans > cnt) ans = cnt;}}if(!flag) cout << "inf" << endl;else cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RobotFramework测试框架(11)--变量文件

Variable files包含的variables可以用于test data中&#xff08;即测试用例&#xff09;中。Variables可以使用Variables section或者从命令行设置。 但是也允许动态创建。 变量文件通常使用模块实现&#xff0c;有两种实现方式。 1、直接从模块中获取变量 变量被指定为模块…

【带源码】如何开发一个视频打赏,付费观看视频的系统?

【带源码】如何开发一个视频打赏&#xff0c;付费观看视频的系统&#xff1f;开发指南来了 最近非常火爆的视频打赏系统&#xff0c;有用户端&#xff0c;管理端&#xff0c;代理端 风口来了&#xff0c;系统部署简单&#xff0c;需要详细部署教程的可以留下评论哦&#xff01…

Calico IPIP和BGP TOR的数据包走向

IPIP Mesh全网互联 文字描述 APOD eth0 10.7.75.132 -----> APOD 网关 -----> A宿主机 cali76174826315网卡 -----> Atunl0 10.7.75.128 封装 ----> Aeth0 10.120.181.20 -----> 通过网关 10.120.181.254 -----> 下一跳 BNODE eth0 10.120.179.8 解封装 --…

“FM”、“AM”信号如何解调?

同学们大家好&#xff0c;今天我们继续学习杨欣的《电子设计从零开始》&#xff0c;这本书从基本原理出发&#xff0c;知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例&#xff0c;可以说是全面系统地介绍了电子设计所需的知识…

陷波器(带阻滤波器)

非广&#xff0c;为了不赘述&#xff08;器件介绍&#xff09; 陷波器是带阻滤波器的一种&#xff08;与带通滤波器正好相反&#xff0c;带通是保持指定频率的信号&#xff0c;而带阻滤波器是阻挡指定频率的信号&#xff09;&#xff0c;通过设置相应的滤波器参数&#xff0c;…

蓝桥杯 每日2题 day4

碎碎念&#xff1a;好难好难&#xff0c;&#xff0c;发呆两小时什么也写不出来&#xff0c;&#xff0c;&#xff0c;周六大寄了 10.阶乘约数 - 蓝桥云课 (lanqiao.cn) 暴力跑了两个小时没出来结果&#xff0c;&#xff0c;去看题解要用数学&#xff1a;约数定理&#xff0c…

Python中调用函数简洁方法

直接上代码 def func1():print("func1")def func2():print("func2")def func3():print("func3")def func4():print("func4")func_list [func1, func2, func3, func4]for func in func_list:func()结果如下 func1 func2 func3 func4如…

pygame发射子弹后绘制射线

import pygame import sys import mathpygame.init()screen pygame.display.set_mode((800, 600)) pygame.display.set_caption("Rotate and Shoot Bullets")# 定义子弹类 class Bullet:def __init__(self, x, y, angle):self.x xself.y yself.angle angleself.s…

经典本地影音播放器纯净无广告版

MPC-BE&#xff08;Media Player Classic Black Edition&#xff09;是来自 MPC-HC&#xff08;Media Player Classic Home Cinema&#xff09;的俄罗斯开发者重新编译优化后的一款经免费的经典全能影音播放器&#xff0c;纯净无广告&#xff0c;启动速度快&#xff0c;占用消耗…

功能测试如何到自动化测试,看这篇就够了。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 本帖不仅给大家介绍自动化测试&#xff0c;更会提供大…

MATLAB 点云体素滤波 (58)

MATLAB 体素滤波 (58) 一、基本原理二、算法实现1.代码数据的海量性始终是点云处理时需要面临的一个大问题,严重的时间消耗和内存占用影响了点云处理的发展,当然了,点云数量主要应该看项目的实际需求,若是对细节要求较高,那么点云数量不可过少,但是要求过低时,我们就可…

@2024/4/1—力扣—两数相除

代码实现&#xff1a; 思路&#xff1a;用减法模拟除法 // 用减法模拟除法 int func(int a, int b) { // a、b均为负数int ans 0;while (a < b) { // a的绝对值大于等于b&#xff0c;表示此时a够减int t b;int count 1; // 用来计数被减的次数// t > INT_MIN / 2:防止…

spring基本框架搭建(思路分享)

安装IntelliJ IDEA&#xff1a; 如果您还没有安装IntelliJ IDEA&#xff0c;请从官方网站&#xff08;https://www.jetbrains.com/idea/&#xff09;下载并安装适用于您操作系统的版本。 创建新项目&#xff1a; 打开IntelliJ IDEA&#xff0c;选择“Create New Project”或者…

seo调优

SEO 网站地图&#xff1a;sitemap.xmlrobots.txtxxx.com/www.xxx.com 解析到服务器&#xff0c;xxx.com 301 到 www.xxx.comhttps百度站点管理标题描述关键词标签语义化内链外链死链链接html结尾友情链接前端架构 注意&#xff1a;已收录链接&#xff0c;禁止改变链接地址 ro…

c++的学习之路:18、容器适配器与反向迭代器

摘要 本文有可能讲的不是特别清楚&#xff0c;我也是初学者有的理解可能有偏差欢迎指出&#xff0c;文章末附上导图。 目录 摘要 一、什么是适配器 二、STL标准库中stack和queue的底层结构 三、deque 1、deque的原理介绍 2、deque的缺陷 四、反向迭代器 五、思维导图…

uniapp 2.0可视化开发工具:提升跨平台应用开发效率的新篇章(更新版)

摘要 随着移动应用市场的不断扩大和前端技术的飞速发展&#xff0c;开发者们对于快速、高效构建跨平台应用的需求日益增强。uniapp作为一款优秀的跨平台应用开发框架&#xff0c;凭借其强大的功能和易用的特性&#xff0c;赢得了广大开发者的青睐。&#xff0c;其2.0版本的发布…

7B超越百亿级,北大开源aiXcoder-7B最强代码大模型,企业部署最佳选择

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 ​ 对代码大模型而言&#xff0c;比能做编程题更重要的&#xff0c;是看是能不能适用于企业…

实现五子棋游戏

本文使用创作助手。 实现完整的五子棋游戏逻辑需要以下几个步骤&#xff1a; 初始化游戏&#xff1a;创建棋盘、定义玩家和当前玩家、初始化胜利状态等。 绘制棋盘&#xff1a;使用Tkinter创建一个棋盘界面&#xff0c;绘制棋盘格子。 监听玩家点击&#xff1a;为棋盘格子添…

【漏洞复现】WordPress Welcart 任意文件读取漏洞(CVE-2022-4140)

0x01 产品简介 Welcart 是一款免费的 WordPress 电子商务插件。Welcart 具有许多用于制作在线商店的功能和自定义设置。您可以轻松创建自己的原始在线商店。 0x02 漏洞概述 Welcart存在任意文件读取漏洞&#xff0c;未授权的攻击者可以通过该漏洞读取任意文件&#xff0c;获…

pdfjs 报错提示Failed to load module script

记录问题 pdfjs Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “application/octet-stream”. Strict MIME type checking is enforced for module scripts per HTML spec 原因 MIME 类型设置不正确&a…