P1275 魔板 [蓝色题]
https://www.luogu.com.cn/problem/P1275
模拟
蓝色题
模拟
蓝色题
思路:
在手玩的时候可以看见几个性质:
①:每一行最多翻转一次,多于一次其实没有意义。
②:每一列的交换只不过改变了每一列的元素的位置。假设这个魔板只有一种操作(当有一列被确定相等时,只有交换这一种操作),即令某几列交换,那么我们总可以找到一种排列顺序,使得它和目标魔板相同。(引用)
所以,我们可以暴力枚举原矩阵的每一列,强行去匹配目标矩阵的第1列,若不匹配就改变这一行的灯泡状态,当第1列匹配完后,其它列也无法改变灯泡状态了,可以直接去判断魔板是否相等,若不相等,就还原矩阵,继续枚举下一列
#include<bits/stdc++.h> using namespace std; const int maxn=105; int k,n,m,mmap[maxn][maxn],yuan[maxn][maxn],go[maxn][maxn],biao; void zhuan( int cur) { for ( int i=1; i<=m; i++) { mmap[cur][i]=!mmap[cur][i]; } } bool check( int cur) { bool vis[maxn]; memset(vis,0, sizeof (vis)); for ( int jy=2; jy<=m; jy++) { for ( int sy=1; sy<=m; sy++) { if (sy==cur) continue ; bool pd=0; for ( int i=1; i<=n; i++) { if (mmap[i][sy]!=go[i][jy]) { pd=1; break ; } } if (!pd&&!vis[jy]) { vis[jy]=1; break ; } } } for ( int i=2; i<=m; i++) { if (!vis[i]) return false ; } return true ; } void fuyuan() { for ( int i=1; i<=n; i++) { for ( int j=1; j<=m; j++) { mmap[i][j]=yuan[i][j]; } } } void search( int cur) { for ( int i=1; i<=n; i++) { if (mmap[i][cur]!=go[i][1]) { zhuan(i); } } return ; } int main() { cin>>k; for ( int o=1; o<=k; o++) { biao=0; cin>>n>>m; memset(mmap,0, sizeof (mmap)); memset(yuan,0, sizeof (yuan)); memset(go,0, sizeof (go)); for ( int i=1; i<=n; i++) { for ( int j=1; j<=m; j++) { cin>>mmap[i][j]; yuan[i][j]=mmap[i][j]; } } for ( int i=1; i<=n; i++) { for ( int j=1; j<=m; j++) { cin>>go[i][j]; } } for ( int i=1; i<=m; i++) { search(i); if (check(i)) { cout<< "YES" <<endl; biao=1; break ; } fuyuan(); } if (!biao) cout<< "NO" <<endl; } } |
__EOF__

本文作者:灰の魔女伊蕾娜
本文链接:https://www.cnblogs.com/2elaina/p/16712727.html
关于博主:编程小萌新一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/2elaina/p/16712727.html
关于博主:编程小萌新一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
模拟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!