位运算基础

news/2025/1/31 1:48:04/文章来源:https://www.cnblogs.com/a-noob-here/p/18695590

费解的开关

先枚举第一行所有情况,接下来四行根据前一行来应用。其实就是枚举状态空间。

#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;
const int N = 7;
const int INF = 0x3f3f3f3f;int g[N][N], backup[N][N];void click(int x, int y)
{g[  x  ][  y  ] ^= 1;g[x - 1][  y  ] ^= 1;g[x + 1][  y  ] ^= 1;g[  x  ][y - 1] ^= 1;g[  x  ][y + 1] ^= 1;
}int main()
{int T; cin >> T;while (T--){char c;for (int i = 1; i <= 5; i++)for (int j = 1; j <= 5; j++){cin >> c;g[i][j] = c - '0';}int ans = INF;/* click */for (int k = 0; k < (1 << 5); k++){int res = 0;memcpy(backup, g, sizeof g);/* first line */for (int j = 0; j < 5; j++){if (k >> j & 1){res++;click(1, j + 1);}}/* other line */for (int i = 2; i <= 5; i++){for (int j = 1; j <= 5; j++){if (!g[i - 1][j]){click(i, j);res++;}}}/* check last line */bool is_success = true;for (int j = 1; j <= 5; j++){if (!g[5][j]){is_success = false;break;}}/* get min ans */if (is_success && res <= 6) ans = min(ans, res);memcpy(g, backup, sizeof g);}if (ans != INF) cout << ans << endl;else            puts("-1");}return 0;
}

[类似]飞行员兄弟

只是将灯泡影响范围变大。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>using namespace std;
typedef pair<int, int> PII;
const int N = 6;
const int INF = 0x3f3f3f3f;int g[N][N], backup[N][N];
vector<PII> ans;void click(int x, int y)
{for (int i = 1; i <= 4; i++) g[x][i] ^= 1;for (int i = 1; i <= 4; i++) g[i][y] ^= 1;g[x][y] ^= 1; // NOTICE HERE!!!!
}bool check()
{for (int i = 1; i <= 4; i++)for (int j = 1; j <= 4; j++)if (!g[i][j])return false;return true;
}int main()
{char c;for (int i = 1; i <= 4; i++)for (int j = 1; j <= 4; j++){cin >> c;g[i][j] = (c == '-') ? 1 : 0;}memcpy(backup, g, sizeof g);/* permutation */for (int k = 0; k < (1 << 16); k++){/* start */vector<PII> res;/* click */for (int i = 0; i < 16; i++){if (k >> i & 1){int x = i / 4 + 1;int y = i % 4 + 1;click(x, y);res.push_back({ x, y });}}/* better answer */if (check() && (res.size() < ans.size() || ans.empty()))ans = res;/* end */memcpy(g, backup, sizeof g);}cout << ans.size() << endl;for (auto item : ans) printf("%d %d\n", item.first, item.second);return 0;
}

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

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

相关文章

Pyton多线程爬取亚马逊商品数据

前言 新年快乐 1.环境准备 使用miniconda为亚马逊创建一个新环境,防止feapder和其他包冲突(比如scrapy)。 # 创建一个新的 Conda 环境: conda create -n python_feapder python=3.12# 查看已创建的环境 conda info --envs# 激活环境 conda activate python_feapder# 安装所…

独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统

如果你的产品是和我的在线客服系统一样,100% 允许用户私有化部署的,那你一定要使用 Docker 技术,让用户能够快速体验到你的系统,以及能够在生产环境中非常轻松的把你的产品用起来。我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从…

AP Physics C Mechanics Chapter 7 Rotation 1

RTVocabularyRigid body 刚体 Angular displacement 角位移 \(\Delta \theta\) Angular velocity 角速度 \(\omega\) Angular acceleration 角加速度 \(\alpha\) Rotational kinetic energy 旋转动能 \(KE_{\text{rotational}}\) Rotational inertia 转动惯量 \(I\) Torque 扭矩…

electrical, electric, electronic; comparison

electrical 3818 electric 2711 electronic 2422electrical vs electric left 4WORD 1: ELECTRICAL WORD W1 W2 PROFESSOR 118 0 , " said Charles Bouman, a Purdue professor of electrical and computer engineering.普渡大学电气和计算机工程教授查尔斯…

容斥与反演

容斥与反演 容斥 容斥原理 用于不重不漏地【表达/转化】某集合 广义容斥:合法方案数 = 总方案数 - 不合法方案数 狭义容斥: \[\left|\bigcup_{i = 1}^{n}S_i\right|=\sum_{x = 1}^{n}(-1)^{x - 1}\sum_{i_1<i_2<\cdots <i_x}\left|\bigcap_{j = 1}^{x}S_{i_j}\right…

数据库查询优化:提升性能的关键实践

title: 数据库查询优化:提升性能的关键实践 date: 2025/1/30 updated: 2025/1/30 author: cmdragon excerpt: 在当今数据驱动的商业环境中,数据库的性能直接影响着应用程序的响应速度和用户体验。查询优化是性能调优的重要组成部分,通过对 SQL 查询的分析与改进,减少查询…

记一次LLVM平行宇宙修包实战

最近加入了LLVM平行宇宙计划小组,在小组内提交了一定数量的PR。这个计划究竟是做什么的呢?LLVM平行宇宙计划是基于LLVM技术栈构建openEuler软件包,大白话讲就是原本一个软件包是用gcc/g++编译的,现在换成clang/clang++编译。虽然只是切换了编译工具,但是偶尔也有可能出现一…

spark--设置日志级别

修改前: Windows:修改后: Windows:对比: Windows:修改过程: Windows: C:\Users\Administrator\Documents\spark\spark-3.5.4-bin-hadoop3>copy conf\log4j2.properties.template conf\log4j2.properties 已复制 1 个文件。 rootLogger.level = info rootLogger.…

动手学大模型应用开发,第1天:学习大模型必知必会

一. 什么是LLM(大语言模型)? 1. 发展历程 语言建模的研究始于20世纪90年代,最初采用了统计学习方法,通过前面的词汇来预测下一个词汇。然而,这种方法在理解复杂语言规则方面存在一定局限性。 随后,研究人员不断尝试改进,其中在2003年,深度学习先驱Bengio在他的经典论文…

RevivedUnblockInstaller无法加载版本的一种解决方法

可以自己去Github仓库下一个 https://github.com/UnblockNeteaseMusic/server 打开RevivedUnblockInstaller目录,我这里是C:\betterncm\RevivedUnblockInstaller 把unblockneteasemusic-win-x64.exe改成UnblockNeteaseMusic-vx.xx.x.exe 我这里改成了UnblockNeteaseMusic-v0.2…

二分答案——时隔三个月的再次

暂且不提三个月未更新的主要原因(懒) 来自25年牛牛寒假营的一道寄巧题part1 仔细考虑,显然满足单调性:假设时间T恰好发生第k次碰撞,那么T之前都不能发生,T之后只会越来越多 据此,又回到了上一篇的二分答案模板,但这里仍需考虑几个问题,如何简化问题? 对于高中物理,无…

[SWPUCTF 2021 新生赛]easyupload1.0 Writeup

1.发现是一个文件上传的题目,先上传一个一句话木马hack.jpg(因为题目前端有格式控制只能上传jpg文件)2.用burp抓包后修改后缀名为.php绕过过滤3.发包后显示:4:再用蚁剑进行连接(注意url,文件在/upload中上传),发现连接成功后找到flag.php但是发现这是个假flag(个人认为…