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

相关文章

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

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

poj 1511 Invitation Cards(spfa最短路)

题意是给你点与点之间的距离,求来回到点1的最短路中的边权和。 因为边很大,不能用原来的dijkstra什么的,所以用spfa来做。并且注意要用long long int 来存储。 稍微改了一下学长的模板。 stack stl 实现代码: #include<stdio.h>#include<stack>using namespace std;const int M

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int