题解 第十六届蓝桥杯C/C++A组第二题黑白棋

DFS实现

#include<bits/stdc++.h>
#include<iostream>
using namespace std;

int vis[10][10];//1是黑,0表示白 

bool dfs(int sum,int w,int b)
{
	if(sum==36)
	{
		if(w==18&&b==18)
		{
			if(!(vis[1][1]==1&&vis[1][2]==0&&vis[1][4]==0&&vis[2][4]==0&&vis[3][5]==0&&vis[3][6]==0&&vis[5][3]==1&&vis[5][6]==1&&vis[6][2]==0&&vis[6][5]==1))return false;
			for(int i=1;i<=6;i++)
			{
				int p = vis[i][1]+vis[i][2]+vis[i][3]+vis[i][4]+vis[i][5]+vis[i][6];
				if(p!=3)return false;
				int q = vis[1][i]+vis[2][i]+vis[3][i]+vis[4][i]+vis[5][i]+vis[6][i];
				if(q!=3)return false;
				for(int j=1;j<=4;j++)
				{
					if(vis[i][j]==vis[i][j+1]&&vis[i][j]==vis[i][j+2])return false;
					if(vis[j][i]==vis[j+1][i]&&vis[j][i]==vis[j+2][i])return false;
				} 
				for(int k=1;k<=6&&k!=i;k++)
				{
					int m = (vis[i][1]==vis[k][1])+(vis[i][2]==vis[k][2])+(vis[i][3]==vis[k][3])+(vis[i][4]==vis[k][4])+(vis[i][5]==vis[k][5])+(vis[i][6]==vis[k][6]); 
					if(m==6)return false;
					int n = (vis[1][i]==vis[1][k])+(vis[2][i]==vis[2][k])+(vis[3][i]==vis[3][k])+(vis[4][i]==vis[4][k])+(vis[5][i]==vis[5][k])+(vis[6][i]==vis[6][k]);
					if(n==6)return false;
				}
			}
			return true;//注意!!!
		}
		return false;注意!!!
	}
	int x = sum/6+1;
	int y = sum%6+1;
	vis[x][y] = 1;
	if(dfs(sum+1,w,b+1))
		return true;
	else
	{
		vis[x][y] = 0;
		return dfs(sum+1,w+1,b); 		
	}
}


int main()
{
	if(dfs(0,0,0))
	{
		for(int i=1;i<=6;i++)
		{
			for(int j=1;j<=6;j++)
			{
				cout<<vis[i][j];
			}
		}
	}
}

全部评论

相关推荐

特招岗位传音控股特招岗位推荐:销售专员(西非)(J17517):https://transsion.zhiye.com/campus/detail?jobAdId=85774dbc-6427-46bb-be69-63c5814ed363产品专员(J17647):https://transsion.zhiye.com/campus/detail?jobAdId=7556252e-7212-41be-8d6d-b6d77ded6a3c安卓开发工程师(J17718):https://transsion.zhiye.com/campus/detail?jobAdId=35703cbb-db2d-4e1c-a04d-63e83477d0a6采购工程师(2G与新业务产品中心)(J17461):https://transsion.zhiye.com/campus/detail?jobAdId=3dc5ba67-dec0-462a-8f08-0618ce484026🐥୧⍤⃝🐟传音控股2025届全球校园招聘开启!【关于传音】✅致力于成为新兴市场消费者喜爱的智能终端产品和移动互联服务提供商 ✅2019年于上海证券交易所科创板上市!✅全球销售网络已覆盖超过70个国家和地区!✅最受非洲消费者喜爱品牌百强!【招聘对象】2025届本科及以上学历的国内外高校毕业生【招聘岗位】开发类、供应链类、产品类、设计类、市场营销类等【福利待遇】超长春节假期,带薪年假;商俱乐部活动、入职&amp;amp;年度体检,各类生活补贴、生日&amp;amp;节日礼品、每日下午茶、团建旅游,体系化培养,激发职业无限可能【工作地点】上海、深圳、重庆、海外我是深圳传音控股股份有限公司的校园大使,不想简历投递后“泡池子”,登录链接:transsion.zhiye.com/campus/jobs填写我的推荐码:EVHPB3&nbsp;投递,填写我的推荐码:EVHPB3&nbsp;投递,填写我的推荐码:EVHPB3&nbsp;投递,简历第一时间送到HR面前,快来投递吧~#牛客AI配图神器#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务