POJ1222熄灯问题
千年老题,以前用枚举做,现在用高斯消元做
自由元直接做成0即可
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
using namespace std;
int a[][];
int ans[][];
int c(int x,int y){return (x*+y+);}
int d[]={,-,,,};
void gauss(int m,int n){
int line=;
for(int k=;k<=m;k++){
int i=line;
while(i<=m){if(a[i][k])break;i++;}
if(i>m)continue;
if(i!=line){swap(a[i],a[line]);}
for(i=;i<=m;i++){
if(i!=line&&a[i][k]){
for(int j=k;j<=n;j++){
a[i][j]^=a[line][j];
}
}
}
line++;
}
// for(int i=1;i<=30;i++){
// for(int j=1;j<=30;j++){
// printf("%d ",a[i][j]);
// }
// printf("\n");
// }
for(int i=;i<;i++){
for(int j=;j<;j++){
ans[i][j]=a[c(i,j)][n];
}
}
}
void solve(){
memset(a,,sizeof(a));
memset(ans,,sizeof(ans));
int x;
for(int i=;i<;i++){
for(int j=;j<;j++){
scanf("%d",&x);
a[c(i,j)][]=x;
a[c(i,j)][c(i,j)]=;
for(int k=;k<;k++){
int x=i+d[k],y=j+d[k+];
if(x>=&&x<&&y>=&&y<)a[c(i,j)][c(x,y)]=;
}
}
}
gauss(,);
for(int i=;i<;i++){
for(int j=;j<;j++){
printf("%d ",ans[i][j]);
}
printf("%d\n",ans[i][]);
}
}
int main()
{
// freopen("data.in","r",stdin);
int T;
scanf("%d",&T);
for(int i=;i<=T;i++){
printf("PUZZLE #%d\n",i);
solve();
}
return ;
}
POJ1222熄灯问题的更多相关文章
- 高斯消元-poj1222熄灯问题状态压缩解法
有点自闭的..为什么我最后的答案是倒着来的啊.. 搞明白了:因为一开始构造的系数就是反着的,,所以主元也倒过来了.. #include<iostream> #include<cstd ...
- POJ1222熄灯问题【位运算+枚举】
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14231 Accepted: 8 ...
- C++基础算法学习——熄灯问题
有一个由按钮组成的矩阵, 其中每行有6个按钮, 共5行– 每个按钮的位置上有一盏灯– 当按下一个按钮后, 该按钮以及周围位置(上边, 下边,左边, 右边)的灯都会改变状态26熄灯问题 POJ1222– ...
- 熄灯问题 --POJ 2811-ACM
问题描述 盏灯的状态. 列的灯的状态就不改变. 请你写一个程序,确定需要按下哪些按钮,恰好使得所有的灯都熄灭.根据上面的规则,我们知道: 次按下时所产生的结果.因此,每个按钮最多只需要按下一次: (2 ...
- poj1222
貌似又是一个矩阵图形的问题,看起来应该是不太容易,不管了先做做吧! 题目大意: 题目:灯光延伸出去(延长熄灯)?? 在一个扩展的游戏版本 熄灯,它是一个难题(或者谜)在一个5行每一行有6个按钮(实际是 ...
- 二进制枚举例题|poj1222,poj3279,poj1753
poj1222,poj3279,poj1753 听说还有 POJ1681-画家问题 POJ1166-拨钟问题 POJ1054-讨厌的青蛙
- POJ1222、POJ3279、POJ1753--Flip
POJ1222-EXTENDED LIGHTS OUT POJ3279-Fliptile POJ1753-Flip Game 为什么将着三个题放一起讲呢?因为只要搞明白了其中一点,就可以一次3ac了- ...
- poj1222(高斯消元法解异或方程组+开关问题)
题目链接:https://vjudge.net/problem/POJ-1222 题意:给定一个5×6的01矩阵,改变一个点的状态时它上下左右包括它自己的状态都会翻转,因为翻转2次等价与没有翻转,那么 ...
- 高斯消元几道入门题总结POJ1222&&POJ1681&&POJ1830&&POJ2065&&POJ3185
最近在搞高斯消元,反正这些题要么是我击败了它们,要么就是这些题把我给击败了.现在高斯消元专题部分还有很多题,先把几道很简单的入门题总结一下吧. 专题:http://acm.hust.edu.cn/vj ...
随机推荐
- C语言程序设计第三次作业--选择结构(1)
Deadline: 2017-10-29 22:00 一.学习要点 掌握关系运算符和关系表达式 掌握如何判断两个实数相等 掌握常用数学函数的使用 掌握逻辑运算符和逻辑表达式 理解逻辑运算的短路特性 掌 ...
- 201621123050 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...
- Beta敏捷冲刺每日报告——Day3
1.情况简述 Beta阶段Scrum Meeting 敏捷开发起止时间 2017.11.4 00:00 -- 2017.11.5 00:00 讨论时间地点 2017.11.4 晚9:30,电话会议会议 ...
- 1013团队Beta冲刺day7
项目进展 李明皇 今天解决的进度 部分数据传递和使用逻辑测试 林翔 今天解决的进度 服务器端查看个人发布的action,修改已发布消息状态的action,仍在尝试使用第三方云存储功能保存图片 孙敏铭 ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 限定 edittext 的 输入内容
<EditText android:id="@+id/idNumber" style="@style ...
- BizTalk 2016 配置 RosettaNet遇到的坑
本文只针对已经安装好BizTalk 2016 需要在安装RosettaNet加速器的伙伴. IIS配置 权限问题 错误信息 Failed to get IIS metabase property. E ...
- Python内置函数(42)——hash
英文文档: hash(object)Return the hash value of the object (if it has one). Hash values are integers. The ...
- Python-字典、集合、字符编码、文件操作整理-Day3
1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tupl ...
- h5图片上传预览
项目中常用到文件上传预览功能,整理一下:如果不想使用 type="file" 的默认样式,可以让其覆盖在一个按钮样式上边,设其透明度为0,或者使用Label关联 html < ...