当前位置: 首页 > news >正文

装饰设计网站南京电商设计

装饰设计网站,南京电商设计,哪些网站可以查企业信息,信阳建设监理协会网站题目描述 你玩过“拉灯”游戏吗?2525盏灯排成一个5x55x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应…

题目描述

你玩过“拉灯”游戏吗?2525盏灯排成一个5x55x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字“11”表示一盏开着的灯,用数字“00”表示关着的灯。下面这种状态

10111
01101
10111
10000
11011

Copy

在改变了最左上角的灯的状态后将变成:

01111
11101
10111
10000
11011

Copy

再改变它正中间的灯后状态将变成:

01111
11001
11001
10100
11011

Copy

给定一些游戏的初始状态,编写程序判断游戏者是否可能在6步以内使所有的灯都变亮。

样例输入

第一行有一个正整数nn,代表数据中共有nn个待解决的游戏初始状态。 以下若干行数据分为nn组,每组数据有55行,每行55个字符。每组数据描述了一个游戏的初始状态。各组数据间用一个空行分隔。

样例输出

输出数据一共有nn行,每行有一个小于等于66的整数,它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。 对于某一个游戏初始状态,若6步以内无法使所有灯变亮,请输出“-1−1”。

样例

样例一

输入数据 1

3
00111
01011
10001
11010
1110011101
11101
11110
11111
1111101111
11111
11111
11111
11111

Copy

输出数据 1

3
2
-1

Copy

数据范围

30\%pts: n \le 530%pts:n≤5

100\%pts: n \le 500。100%pts:n≤500。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>using namespace std; 
const int N = 6;//开六个防止边缘的按钮越界 char game[N][N], backup[N][N];void turn(int x, int y){//使用异或进行五个按钮反转处理 game[x][y]  ^= 1;game[x-1][y]  ^= 1;game[x][y-1]  ^= 1;game[x][y+1]  ^= 1;game[x+1][y]  ^= 1;
}int main(){int n;cin >> n;while(n--){for(int i = 0; i < 5; i++)	cin >> game[i];int result = 0x3f3f3f;for(int op = 0; op <= 31; op++ ){//对第一行的所有按动方式进行枚举memcpy(backup, game, sizeof(game));int step = 0;for(int i = 0; i < 5; i++){if(op >> i & 1){// 数字2 对应了00010,表示第二个位置按一下//数字3 对应了00011 表示第1 和第2个位置的按一下 step++;turn(0,i);}	} for(int i = 1; i < 5; i++){for(int j = 0; j < 5; j++){if(game[i-1][j] == '0' ){step++;turn(i, j);}}}bool success = true;for(int i = 0; i < 5; i++){if(game[4][i] == '0'){success = false;break;}}if(success){result = min(result, step);}memcpy(game, backup, sizeof(game));}//最后判断是否大于六步,因为在32中操作中,如果当前的大于6步,后面有不大于6步的就没办法有效利用了 if(result > 6)	 result = -1; // 大于六步,输出-1 printf("%d\n", result);}return 0;
}

http://www.hyszgw.com/news/67642.html

相关文章:

  • 陕西高速建设集团网站网站新建设请示
  • 网站维护费怎么做会计分录wordpress网页视频
  • 南京网站设计机构动易网站 价格
  • 如何用文档做网站上海市干部公示
  • 学做网站论坛视频下载哪个公司建设网站
  • 诸城哪有做公司网站的淘宝的网站建设情况
  • 怎么给网站绑定域名电子商务网站建设与实践上机指导教程
  • 可以做两个网站指向同一个域名什么是网络营销产生的技术原因
  • net的电商网站建设小程序商城的服务哪家好
  • 通用企业手机网站模板2022年上海进出口博览会
  • 企业营销网站建设步骤装饰网站建设软件下载
  • 做网站设计需要具备哪些做网站的价位
  • 购物网站排名2018适合夜间看的直播app大全
  • 做视频网站视频文件都存放在哪软件开发管理平台
  • 专业网站建设加盟合作网站框架怎么做的
  • 如何建立网站平台网站制作技术培训学校
  • 北京网站设计课程企业网站建设论文文献综述
  • 网站建设 网页设计 的文章北京网站建设公司网站优化
  • 网站后台管理代码单位公众号怎么制作
  • 网站开发实习个人小结商丘网站推广公司
  • 建设部网站查不到注册证怎么回事北京市朝阳区官方发布
  • 雁塔区住房和城乡建设局网站工程建设的信息网站
  • 高端做网站软件工程师是程序员吗
  • 建网站做淘宝客可以吗什么网站是最全的
  • 阿里云 企业 网站wordpress 带分页的主题
  • 长春长春网站建设公司网页制作啥专业
  • 怎么做营销型网站设计wordpress样式切换功能
  • 企业网站都有哪些自助网站建设哪个好
  • 网站为什么需要备案肇庆企业推广
  • 做外汇看哪个网站wordpress打教程