poj 2965 The Pilots Brothers' refrigerator 普通dfs 超时 暑假第二题

2023-12-08 10:38

本文主要是介绍poj 2965 The Pilots Brothers' refrigerator 普通dfs 超时 暑假第二题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码:

//#include<iostream>
#include<string.h>
#include<stdio.h>
//using namespace std;
int step=0;
int visit[5][5]= {0};
char a[5][5];
bool b[5][5];
bool c[5][5];
int k=0;
struct Str
{int x;int y;
};
Str d[50];
void roll(int row,int col)
{int i,j;for(i=1; i<=4; i++){b[row][i]=!b[row][i];b[i][col]=!b[i][col];}b[row][col]=!b[row][col];
}
bool Judge()
{int i,j;for(i=1; i<=4; i++)for(j=1; j<=4; j++)if(b[i][j]==0)return 0;return 1;
}
void huanyuan()
{int i,j;for(i=1;i<=4;i++){for(j=1;j<=4;j++){b[i][j]=c[i][j];}}
}
void dfs(int depth)
{int i,j;if(depth==step){if(Judge()==1){k=1;printf("%d\n",step);//cout<<step<<endl;for(i=0; i<depth; i++){printf("%d %d\n",d[i].x,d[i].y);//cout<<d[i].x<<' '<<d[i].y<<endl;}return ;}return ;}for(i=1; i<=4; i++){for(j=1; j<=4; j++){if(visit[i][j]==0&&k==0){visit[i][j]=1;d[depth].x=i;d[depth].y=j;roll(i,j);dfs(depth+1);visit[i][j]=0;roll(i,j);}}}
}
int main()
{int i,j;memset(visit,0,sizeof(visit));for(i=1; i<=4; i++){for(j=1; j<=4; j++){scanf("%c",&a[i][j]);// cin>>a[i][j];if(a[i][j]=='+')b[i][j]=0;elseb[i][j]=1;//开c[i][j]=b[i][j];}getchar();}for(step=1; step<=16; step++){dfs(0);if(k)break;}return 0;
}


这篇关于poj 2965 The Pilots Brothers' refrigerator 普通dfs 超时 暑假第二题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/469550

相关文章

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

Springboot使用RabbitMQ实现关闭超时订单(示例详解)

《Springboot使用RabbitMQ实现关闭超时订单(示例详解)》介绍了如何在SpringBoot项目中使用RabbitMQ实现订单的延时处理和超时关闭,通过配置RabbitMQ的交换机、队列和... 目录1.maven中引入rabbitmq的依赖:2.application.yml中进行rabbit