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

网站建设廴金手指花总壹陆山东已经宣布封城的城市2022年

网站建设廴金手指花总壹陆,山东已经宣布封城的城市2022年,wordpress略缩图alt,网站域名解析页面题目背景 上元佳节#xff0c;庙会里举办着各式各样的庆典活动#xff0c;牛宝也兴奋地参与其中。突然#xff0c;他被一个新颖的点灯游戏所吸引#xff0c;游戏要求最终点亮所有在场的花灯#xff0c;每盏灯都有开关两种状态#xff0c;每一次点击在场的一盏任意状态的花…题目背景 上元佳节庙会里举办着各式各样的庆典活动牛宝也兴奋地参与其中。突然他被一个新颖的点灯游戏所吸引游戏要求最终点亮所有在场的花灯每盏灯都有开关两种状态每一次点击在场的一盏任意状态的花灯其自身和四周的的花灯都会改变其开关状态。 例如 3*3的花灯阵 0 1 1 1 0 0 1 0 1 点一下最中间的灯【2,2】就变成了 0 0 1 0 1 1 1 1 1 再点一下左上角的灯【1,1】就变成了 1 1 1 1 1 1 1 1 1 最终输出点亮花灯的序号从左上角到右下角序号依次为1-9答案即点亮1号灯和5号灯。 为了奖品牛宝只能尝试破解3*3的花灯阵你能协助他吗 题目描述 给出3*3的花灯阵各盏花灯的初始开关状态请你按照序号从小到大的顺序点亮花灯从左上角到右下角序号依次为1-9同时要求点亮的次数最少避免多余的点亮步骤使得最终全部花灯均被点亮。 输入格式 九个数字3*3的格式输入每两个数字中间只有一个空格表示灯初始的开关状态。0表示关1表示开 输出格式 按照序号从小到大的顺序点亮花灯从左上角到右下角序号依次为1-9输出点亮的序号集合每两个序号之间用空格隔开。 输入输出样例 输入 0 1 1 1 0 0 1 0 1 输出 1 5 说明/提示 牛宝正在脑海中不停地进行尝试。。。 解题思路: 从左上到右下1-9的顺序进行点亮深搜一旦点亮该灯自身和其四周灯亮灭情况变化保留点亮过程灯号 深搜这条路径无法点亮所有的灯则进行回溯自身和其四周灯亮灭情况变化。 深搜边界条件即点亮所有的灯一旦有更少步数的进行更新方案。 代码如下: #include iostream using namespace std; const int N 5; int g[N][N]; int ans 10; int path[10]; bool vis[10]; int paths[10];void turn(int x, int y) { //开关灯g[x][y] 1 - g[x][y];g[x - 1][y] 1 - g[x - 1][y];g[x 1][y] 1 - g[x 1][y];g[x][y 1] 1 - g[x][y 1];g[x][y - 1] 1 - g[x][y - 1]; }void dfs(int n) {if (n ans)return ;//剪枝不剪枝会超时//超过最小的次数就返回初始次数为10规律:它总共步骤不会超过9次int sum 0;for (int i 1; i 3; i)for (int j 1; j 3; j)sum g[i][j];if (sum 9) {ans min(ans, n - 1);for (int i 1; i ans; i) {paths[i] path[i];}return ;}for (int i 1; i 3; i)for (int j 1; j 3; j) {turn(i, j);path[n] (i - 1) * 3 j;//将二维数组转换为一维dfs(n 1);turn(i, j);}}int main() {for (int i 1; i 3; i)for (int j 1; j 3; j)cin g[i][j];dfs(1);for (int i 1; i ans; i) {cout paths[i] ;}return 0; } 当然因为按2下等于没有按所以我们可以增加一个标记数组这样就会少按很多重复的无效的次数相当于剪枝。 代码如下: #include iostream using namespace std; const int N 5; int g[N][N]; int ans 10; int path[10]; int paths[10]; bool vis[N][N];void turn(int x, int y) { //开关灯g[x][y] 1 - g[x][y];g[x - 1][y] 1 - g[x - 1][y];g[x 1][y] 1 - g[x 1][y];g[x][y 1] 1 - g[x][y 1];g[x][y - 1] 1 - g[x][y - 1]; }void dfs(int n) {if (n ans)return ;//剪枝不剪枝会超时//超过最小的次数就返回初始次数为10规律:它总共步骤不会超过9次int sum 0;for (int i 1; i 3; i)for (int j 1; j 3; j)sum g[i][j];if (sum 9) {ans min(ans, n - 1);for (int i 1; i ans; i) {paths[i] path[i];}return ;}for (int i 1; i 3; i)for (int j 1; j 3; j) {if (!vis[i][j]) {vis[i][j] true;turn(i, j);path[n] (i - 1) * 3 j;//将二维数组转换为一维dfs(n 1);vis[i][j] false;turn(i, j);}}}int main() {for (int i 1; i 3; i)for (int j 1; j 3; j)cin g[i][j];dfs(1);for (int i 1; i ans; i) {cout paths[i] ;}return 0; } 当然如果你想不到怎么把二维数组转换为一维也可以这样写 #includebits/stdc.h using namespace std; int s[5][5];int book[5][5];int small10; int t[10]; int tt[10]; int change(int x,int y) {s[x][y]1-s[x][y];s[x-1][y]1-s[x-1][y];s[x1][y]1-s[x1][y];s[x][y-1]1-s[x][y-1];s[x][y1]1-s[x][y1];return 0; } int dfs(int k) {if(ksmall)return 0;int sum0;for(int i1;i3;i){for(int j1;j3;j){sums[i][j];}}if(sum9){if(ksmall){smallk;for(int i1;ik;i){tt[i]t[i];}}return 0;}for(int i1;i3;i){for(int j1;j3;j){if(book[i][j]0){if(i1j1)t[k1]1;if(i1j2)t[k1]2;if(i1j3)t[k1]3;if(i2j1)t[k1]4;if(i2j2)t[k1]5;if(i2j3)t[k1]6;if(i3j1)t[k1]7;if(i3j2)t[k1]8;if(i3j3)t[k1]9;change(i,j);book[i][j]1;dfs(k1);change(i,j);book[i][j]0;} }}return 0; } int main() {for(int i1;i3;i){for(int j1;j3;j){cins[i][j];}}dfs(0);for(int i1;ismall;i){couttt[i] ;}return 0; }
http://www.pierceye.com/news/741276/

相关文章:

  • 做网站都有哪些费用app网站的优点
  • 茂名营销网站开发浙江华洋建设有限公司网站
  • 服装网站建设都有哪些注册公司流程视频
  • 泉州网站建设的步骤wordpress 接收json
  • 西宁网站设计全屏网站模版
  • 网站建设代理平台中国建设银行网站首页 定投
  • 备案 网站内容电商网站充值消费系统
  • 上海闸北区网站建设广州市网站建设制作
  • 阜阳公司做网站余江区建设局网站
  • 南山网站设计方案网站开发的客户群体
  • 汕头市建设网站高端网站定制的案例
  • 深圳外贸网站设计公司郑州seo培训
  • 公司高端网站设计公司湖南竞网做网站好吗
  • 做微信的微网站费用黄冈论坛遗爱湖
  • 设计师用什么做网站河南程序开发公司
  • 路由器做服务器做网站怎么在百度发布免费广告
  • 惠州网站制作推广做响应式网站设计做图怎么搞
  • 天津高端网站设计公司美食网页设计图
  • 做柱状图饼状图好看的网站四川省住房和城乡建设厅证书
  • 网站建设公司模版wordpress自适应站点
  • 怎么在百度上创建网站wordpress时间轴页面
  • 网站建设公司济宁深圳互联网营销外包
  • 交互设计产品榆林网站seo
  • 唯品会网站开发招聘英文网站公司
  • 网站的推广一般有什么方式韩城网站建设韩城网站推广
  • 书城网站开发四川省建设厅网站投诉
  • 想要个网站沈阳网站备案
  • 网站建设分哪些类别谁有做爰网站号
  • 建设电子票务系统的网站需要多少钱网站开发一对一
  • 网站规划可以分成哪几步上海营销型网站制作