我是靠谱客的博主 勤劳蜜粉,这篇文章主要介绍poj.1753dfs,现在分享给大家,希望可以做个参考。

这道题的意思很简单,主要需要注意的有两点,第一:矩阵中的每个点都最多被主动翻一次,(注意不是被动),所以总共有2^16种可能,只要枚举每种可能了。第二:翻转的顺序对结果没有影响,所以问题的关键就在于那些点被主动翻转了。翻转多少次就有多少次round,只要求出所有round中最小的一个就是答案了,如果没有一种可能可以得到结果则输出“Impossible"。下面是代码和测试数据:

//#include <iostream>
#include <stdio.h>
#include <stdlib.h>
//using namespace std;
#define Inf 1000000
int maxn;
int s[4][4];
void Init(){
	char ch[4][4];
	int i,j;
	for(i=0;i<4;i++)
		scanf("%s",ch[i]);
	for(i=0;i<4;i++)
		for(j=0;j<4;j++){
			if(ch[i][j]=='b')
				s[i][j]=1;
			else
				s[i][j]=-1;
		}
		/*for(i=0;i<4;i++)
			for(j=0;j<4;j++)
             printf("%d ",s[i][j]);*/
}	
bool Is_right(int (*t)[4]){
	int i,j;
	for(i=0;i<4;i++)
		for(j=0;j<4;j++)
			if(t[i][j]!=t[0][0])
				return false;
			return

最后

以上就是勤劳蜜粉最近收集整理的关于poj.1753dfs的全部内容,更多相关poj内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部