poj 2965 The Pilots Brothers' refrigerator

http://poj.org/problem?id=2965

  poj 1753扩展,dfs+枚举,不过加了一个路径。

The Pilots Brothers' refrigerator
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 19278 Accepted: 7384 Special Judge

Description

The game “The Pilots Brothers: following the stripy elephant” has a quest where a player needs to open a refrigerator.

There are 16 handles on the refrigerator door. Every handle can be in one of two states: open or closed. The refrigerator is open only when all handles are open. The handles are represented as a matrix 4х4. You can change the state of a handle in any location [i, j] (1 ≤ i, j ≤ 4). However, this also changes states of all handles in row i and all handles in column j.

The task is to determine the minimum number of handle switching necessary to open the refrigerator.

Input

The input contains four lines. Each of the four lines contains four characters describing the initial state of appropriate handles. A symbol “+” means that the handle is in closed state, whereas the symbol “−” means “open”. At least one of the handles is initially closed.

Output

The first line of the input contains N – the minimum number of switching. The rest N lines describe switching sequence. Each of the lines contains a row number and a column number of the matrix separated by one or more spaces. If there are several solutions, you may give any one of them.

Sample Input

-+--
----
----
-+--

Sample Output

6
1 1
1 3
1 4
4 1
4 3
4 4
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int ans[6][6];
int step;
int r[20],c[20];
bool flag=false;
bool judge()
{int i,j,sum=0;for(i=1;i<=4;i++)for(j=1;j<=4;j++)sum+=ans[i][j];if(sum==0)return true;elsereturn false;
}
void flip(int x,int y)
{int i,j;for(j=1;j<=4;j++){if(ans[x][j]==1)ans[x][j]=0;elseans[x][j]=1;}for(i=1;i<=4;i++){if(i==x)continue;if(ans[i][y]==1)ans[i][y]=0;elseans[i][y]=1;}
}
void dfs(int x,int y,int d){if(d==step){flag=judge();return ;}if(flag||x>4){return ;}flip(x,y);r[d]=x;//保存路径。c[d]=y;//保存路径。if(y<4)dfs(x,y+1,d+1);elsedfs(x+1,1,d+1);flip(x,y);if(y<4)dfs(x,y+1,d);elsedfs(x+1,1,d);}
int main()
{int i,j;char temp;for(i=1;i<=4;i++){for(j=1;j<=4;j++){scanf("%c",&temp);if(temp=='+')ans[i][j]=1;elseans[i][j]=0;}getchar();}for(step=1;step<=16;step++){dfs(1,1,0);if(flag)break;}printf("%d\n",step);for(i=0;i<step;i++)printf("%d %d\n",r[i],c[i]);return 0;
}

 

转载于:https://www.cnblogs.com/cancangood/p/4132078.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7简要介绍_MySQL 5.7新特性介绍

1. 介绍身处MySQL这个圈子&#xff0c;能够切身地感受到大家对MySQL 5.7的期待和热情&#xff0c;似乎每个人都迫不及待的想要了解、学习和使用MySQL 5.7。那么&#xff0c;我们不禁要问&#xff0c;MySQL 5.7到底做了哪些改进&#xff0c;引入了哪些新功能&#xff0c;性能又提…

数字化转型方法论_双中台:企业数字化转型的核心战略与方法论

当下&#xff0c;绝大部分企业的组织形态、经营模式基本都是垂直闭环型&#xff0c;即围绕一种业务或者管理&#xff0c;其计划、执行、检查、优化的闭环都是独立于企业生态之中。在过去的“局部竞争”、“渠道为王”、“终端为王”的时代&#xff0c;这种组织与经营形式很好地…

java ee自学路线

本站文章为 Kenan 原创&#xff0c;转载请注明转自 Kenan的博客 http://kenan1992.qzone.qq.com 首先声明对于什么java ee的 自学不需要编程的基础&#xff0c;但是需要你的刻苦和努力&#xff0c;付出100%的努力&#xff0c;相信你终会有收获的那一天&#xff01;&#xff01;…

java获取cpu使用率_再一次生产 CPU 高负载排查实践

前言前几日早上打开邮箱收到一封监控报警邮件&#xff1a;某某 ip 服务器 CPU 负载较高&#xff0c;请研发尽快排查解决&#xff0c;发送时间正好是凌晨。其实早在去年我也处理过类似的问题&#xff0c;并记录下来&#xff1a;《一次生产 CPU 100% 排查优化实践》不过本次问题产…

《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析...

《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析&#xff0c;绝对的经典分析 原文:《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析&#xff0c;绝对的经典分析献给广大的三国爱好者们&#xff0c;希望喜欢三国的朋友一起讨论&#…

java map取值_Java Set接口 Map 与枚举

Set接口概述一个不包含重复元素的 collection。更确切地讲&#xff0c;set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2&#xff0c;并且最多包含一个 null 元素特点Set接口是无序的 Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。Set可以存储null值,但是nu…

网路工程师要不要学mysql_网络工程师要学什么_网络工程师需要的技能

如果以后想从事网络工程师这个岗位&#xff0c;同学们知道 网络工程师要学什么 吗&#xff1f;本期乔布 网络工程师需要的技能 。关键词&#xff1a; 网络工程师要学什么 &#xff0c; 网络工程师需要的技能网络基础知识&#xff1a;深度网络基本概念&#xff0c;例如>ISO/O…

python执行效果_使用tqdm显示Python代码执行进度功能

在使用Python执行一些比较耗时的操作时&#xff0c;为了方便观察进度&#xff0c;通常使用进度条的方式来可视化呈现。Python中的tqdm就是用来实现此功能的。先来看看tqdm的进度条效果&#xff1a;tqdm的基本用法tqdm最主要的用法有3种&#xff0c;自动控制、手动控制或者用于脚…

cookiesession

cookie机制采用的是在客户端保持状态的方案&#xff0c;而session机制采用的是在服务器端保持状态的方案。 由于采用服务器端保持状态的方案在客户端也需要保存一个标识&#xff0c;所以session机制可能需要借助于cookie机制来达到保存标识的目的&#xff0c;但实际上它还有其他…

python的应用图标_python实现根据图标提取分类应用程序实例

本文实例讲述了python实现根据图标提取分类应用程序&#xff0c;分享给大家供大家参考。具体方法如下&#xff1a;#!/usr/bin/python# -*- coding: utf-8 -*-import Imageimport win32uiimport win32guidef make_regalur_image(img, size (256, 256)):return img.resize(size)…

linux调用ocx插件_Wordpress file manager插件任意文件上传

白斩鸡卫兵实验室近日&#xff0c;Wordpress 插件file manager被爆出严重0day漏洞&#xff0c;本着技术研究角度&#xff0c;和大家分享、探讨其漏洞原因。该修复程序已在同一天发布&#xff0c;并且WP File Manager插件6.9版通过删除允许未经授权的文件上传访问的端点来解决当…

ActiveRecord教程

(一、ActiveRecord基础) ActiveRecord是Rails提供的一个对象关系映射(ORM)层&#xff0c;从这篇开始&#xff0c;我们来了解Active Record的一些基础内容&#xff0c;连接数据库&#xff0c;映射表&#xff0c;访问数据等。   Active Record使用基本的ORM模式&#xff1a;表映…

树莓派安装mysql5.6_Linux上安装MySQL5.6

OS & MySQL的版本号和配置&#xff1a;MySQL Version: 5.6.19Linux Version: Linux boston.oracle.com 2.6.18-164.el5 #1 SMP Thu Sep 3 02:16:47 EDT 2009 i686 i686 i386 GNU/Linux一。下载MySQL安装软件。请到www.oracle.com去找DATABASE DOWNLOAD。下载MySQL须要注冊一…

java获取cpu使用率_2019年阿里P8架构师的解析:最新Java性能测试、调优策略

一、性能测试Ⅰ.测试方法微基准性能测试可以精准定位到某个模块或者某个方法的性能问题&#xff0c;例如对比一个方法使用同步实现和非同步实现的性能差异宏基准性能测试宏基准性能测试是一个综合测试&#xff0c;需要考虑到测试环境、测试场景和测试目标测试环境&#xff1a;模…

Linux下的实模式和保护模式

实模式&#xff1a;&#xff08;即实地址访问模式&#xff09;它是Intel公司80286及以后的x86(80386,80486和80586等)兼容处理器&#xff08;CPU&#xff09;的一种操作模式。实模式被特殊定义为20位地址内存可访问空间上&#xff0c;这就意味着它的容量是2的20次幂&#xff08…

java在线编辑器_微软开源在线代码编辑器——Monaco Editor

介绍Monaco Editor是为VS Code提供支持的代码编辑器&#xff0c;运行在浏览器环境中。编辑器提供代码提示&#xff0c;智能建议等功能。供开发人员远程更方便的编写代码。移动浏览器或移动Web框架不支持Monaco编辑器。简单的理解就是VSCode中的代码编辑器和Monaco Editor使用的…

java的核心类库_Java核心类库,集合框架

Java集合框架的由来&#xff1a;Java最初版本只为最常用的数据结构提供了很少的一组类&#xff1a;比如Vector、Stack、Hashtable、BitSet、Enumerrationr接品&#xff0c;其中Enumerrationr接口提供了一种用于访问任意容器中各个元素的抽象机制。这是一种很明智的选择&#xf…

关于解决Permission is only granted to system apps

一句话&#xff0c;clean一下这个Project&#xff01;就OK了…… 不要被假象迷惑&#xff01;转载于:https://www.cnblogs.com/wytings/p/4156038.html

js splice方法_我用JS刷LeetCode | Day 8

如有兴趣&#xff0c;微信搜索「九零后重庆崽儿」&#xff0c;我们一起学前端。删除排序数组中的重复项:说明&#xff1a;现阶段的解题暂未考虑复杂度问题首发地址&#xff1a;我用JS刷LeetCode | Day 8​www.brandhuang.comQuestion&#xff1a;Given an array nums and a val…

java 删除目录下所有文件_Java删除文件、目录及目录下所有文件的方法实例

前言本文主要实现的功能是删除某个目录及目录下的所有子目录和文件&#xff0c;涉及到的知识点&#xff1a;File.delete()用于删除“某个文件或者空目录”&#xff01;所以要删除某个目录及其中的所有文件和子目录&#xff0c;要进行递归删除。具体代码示例如下&#xff1a;imp…