Luogu1275魔板
https://zybuluo.com/ysner/note/1136271
题面
有这样一种魔板:它是一个长方形的面板,被划分成\(n\)行\(m\)列的\(n*m\)个方格。每个方格内有一个小灯泡,灯泡的状态有两种(亮或暗)。我们可以通过若干操作使魔板从一个状态改变为另一个状态。操作的方式有两种:
(1)任选一行,改变该行中所有灯泡的状态,即亮的变暗、暗的变亮;
(2)任选两列,交换其位置。
你的任务就是根据给定两个魔板状态,判断两个状态能否互相转化。
解析
首先一眼看出个性质:每行亮的灯泡数只可能有两种或一种。
(然而这并没有什么卵用)
正经一点,这题状态只有\(0\)、\(1\),\(bitset\)走起。
然后我由于列可任意交换,我们可以把列按字典序排序。
再枚举一下看有没有列能成为目标状态第一列即可。
在判定过程中,如果一行数字不同就翻转,到最后再排序,如果后面的列能一一对应就\(yes\),否则继续。
(核心思想就是在模拟时,你只能把一行翻转一次,否则为后面翻转时会改变前面的)
int k,n,m,ans;
bitset<105>a[105],b[105],c;
il bool cmp(bitset<105>x,bitset<105>y)
{
fp(i,1,n) if(x[i]^y[i]) return x[i]<y[i];
return 0;
}
int main()
{
//freopen("panel.in","r",stdin);
//freopen("panel.out","w",stdout);
k=gi();
while(k--)
{
n=gi();m=gi();ans=0;
fp(i,1,m) a[i].reset(),b[i].reset();
fp(i,1,n) fp(j,1,m) a[j][i]=gi();
fp(i,1,n) fp(j,1,m) b[j][i]=gi();
sort(a+1,a+1+m,cmp);sort(b+1,b+1+m,cmp);
fp(i,1,m)
{
c=a[i]^b[1];
fp(j,1,m) a[j]^=c;
sort(a+1,a+1+m,cmp);
re int flag=1;
fp(j,1,m) if(a[j]!=b[j]) {flag=0;break;}
if(flag) {ans=1;break;}
fp(j,1,m) a[j]^=c;
sort(a+1,a+1+m,cmp);
}
puts(ans?"YES":"NO");
}
fclose(stdin);
fclose(stdout);
return 0;
}
Luogu1275魔板的更多相关文章
- Sicily 1051: 魔板(BFS+排重)
相对1150题来说,这道题的N可能超过10,所以需要进行排重,即相同状态的魔板不要重复压倒队列里,这里我用map储存操作过的状态,也可以用康托编码来储存状态,这样时间缩短为0.03秒.关于康托展开可以 ...
- Sicily 1150: 简单魔板(BFS)
此题可以使用BFS进行解答,使用8位的十进制数来储存魔板的状态,用BFS进行搜索即可 #include <bits/stdc++.h> using namespace std; int o ...
- hdu.1430.魔板(bfs + 康托展开)
魔板 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- HDU 1430 魔板(康托展开+BFS+预处理)
魔板 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- [HDU 1430] 魔板
魔板 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- hdu1430魔板(BFS+康托展开)
做这题先看:http://blog.csdn.net/u010372095/article/details/9904497 Problem Description 在魔方风靡全球之后不久,Rubik先 ...
- Sicily1151:魔板搜索及优化
最终优化代码地址: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1151.c 题目如下 Constraints ...
- 【USACO 3.2.5】魔板
[描述] 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 我们知道魔板的每一个方格都有一种颜色.这8种颜色用前8个 ...
- HDU_1430——魔板,预处理,康托展开,置换,string类的+操作
Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板的状态可 ...
随机推荐
- 00JAVA EE
JAVA EE 三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么 ...
- TWaver 3D作品Viewer查看器
为了让开发者更方便的对各类3D模型.设备.物体进行浏览和查看,我们直接封装了mono.Viewer组件.它可以直接根据给定的数据源(json.obj.url等)进行数据加载和浏览展示.对于一般的3D设 ...
- Luogu P4016 「 网络流 24 题 」负载平衡问题
吐槽题目难度,这个题建模好像比前两个都要难,但是难度评级却比第二个要低. 解题思路 依旧是考虑如何建模和建立源点汇点.每个点的货物数量到最后都一样的话肯定是等于他们的平均值.用 $num$ 数组存储原 ...
- 【ssm】spring功能讲解
概览 Spring5框架包含许多特性,负责管理项目中的所有对象,并被很好地组织在下图所示的模块中 核心容器:由spring-beans.spring-core.spring-context.sprin ...
- docker插件
import docker c = docker.Client(base_url='unix://var/run/docker.sock',version='1.15',timeout=10) pri ...
- 【jenkins】UnicodeEncodeError: 'ascii' codec can't encode character
https://stackoverflow.com/questions/6076203/how-do-you-set-the-default-encoding-in-jenkins
- SVM简单上手示例
转载自 百度知道 id:风_南(https://zhidao.baidu.com/usercenter?uid=e9904069236f25705e799313) 转载只为方便学习复习,侵删. 在用s ...
- Spring 获取当前activeProfile
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext()) ...
- 使用 XMLHttpRequest实现Ajax
[XMLHttpRequest的概述] 1.XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的.非W3C标准 2.创建XMLHttpRequest对象(由于非标准所以实现方法 ...
- Java Syntax Specification
Java Syntax Specification Programs <compilation unit> ::= <package declaration>? <imp ...