首页 > 学院 > 开发设计 > 正文

第七届蓝桥杯软件类省赛真题-C-B-6_方格填数

2019-11-08 20:21:57
字体:
来源:转载
供稿:网友
//第七届蓝桥杯软件类省赛真题-C-B-6_方格填数 /*方格填数如下的10个格子   +--+--+--+   |  |  |  |+--+--+--+--+|  |  |  |  |+--+--+--+--+|  |  |  |+--+--+--+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。*//*【解题思路】解法:暴力枚举或深度优先搜索,其中需注意条件不能漏,应细心 答案:11318*/#include<iostream>#include<cmath> using namespace std;double a[10];bool visit[10];int count = 0;void dfs(int step){	if(step == 10)	{		if(abs(a[0]-a[4]) != 1.0 && abs(a[0]-a[1]) != 1.0 && abs(a[0]-a[3]) != 1.0 && abs(a[0]-a[5]) != 1.0			&& abs(a[1]-a[5]) != 1.0 && abs(a[1]-a[2]) != 1.0 && abs(a[1]-a[4]) != 1.0 && abs(a[1]-a[6]) != 1.0				&& abs(a[2]-a[6]) != 1.0 && abs(a[2]-a[5]) != 1.0					&& abs(a[3]-a[7]) != 1.0 && abs(a[3]-a[4]) != 1.0 && abs(a[3]-a[8]) != 1.0						&& abs(a[4]-a[8]) != 1.0 && abs(a[4]-a[9]) != 1.0 && abs(a[4]-a[7]) != 1.0							&& abs(a[5]-a[9]) != 1.0 && abs(a[5]-a[6]) != 1.0 && abs(a[5]-a[8]) != 1.0								&& abs(a[6]-a[9]) != 1.0){									count++;//									cout<<"  "<<a<<" "<<b<<" "<<c<<endl;//									cout<<d<<" "<<e<<" "<<f<<" "<<g<<endl;//									cout<<h<<" "<<i<<" "<<j<<endl;//									cout<<"============"<<endl;		}		return;	}	for(int i = 0;i < 10;i ++)	{		if(visit[i] == false)		{			a[step] = i+1;			visit[i] = true;			dfs(step+1);			visit[i] = false;		}	}	return;}int main(){	dfs(0);	cout<<"这个算式共有的解法种数为:"<<count<<endl;	return 0;}/*#include<iostream>#include<cmath>using namespace std;int main(){	int a,b,c,d,e,f,g,h,i,j;	int count = 0;	for(a = 0;a <= 9;a++)		 for(b = 0;b <= 9;b++)		 	for(c = 0;c <= 9;c++)		 		for(d = 0;d <= 9;d++)		 			for(e = 0;e <= 9;e++)		 				for(f = 0;f <= 9;f++)		 					for(g = 0;g <= 9;g++)		 						for(h = 0;h <= 9;h++)		 							for(i = 0;i <= 9;i++)										for(j = 0;j <= 9;j++){			 								if(a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j											  && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j											   && c != d && c != e && c != f && c != g && c != h && c != i && c != j											    && d != e && d != f && d != g && d != h && d != i && d != j												 && e != f && e != g && e != h && e != i && e != j												  && f != g && f != h && f != i && f != j												   && g != h && g != i && g != j												    && h != i && h != j													 && i != j){												    													    	if(abs(a-e) != 1.0 && abs(a-b) != 1.0 && abs(a-d) != 1.0 && abs(a-f) != 1.0														 && abs(b-f) != 1.0 && abs(b-c) != 1.0 && abs(b-e) != 1.0 && abs(b-g) != 1.0														  && abs(c-g) != 1.0 && abs(c-f) != 1.0														   && abs(d-h) != 1.0 && abs(d-e) != 1.0 && abs(d-i) != 1.0														    && abs(e-i) != 1.0 && abs(e-j) != 1.0 && abs(e-h) != 1.0															 && abs(f-j) != 1.0 && abs(f-g) != 1.0 && abs(f-i) != 1.0															  && abs(g-j) != 1.0){												    			count++;//												    			cout<<"  "<<a<<" "<<b<<" "<<c<<endl;//												    			cout<<d<<" "<<e<<" "<<f<<" "<<g<<endl;//												    			cout<<h<<" "<<i<<" "<<j<<endl;//												    			cout<<"============"<<endl;														}												    														}										}	cout<<"方案数目的总数为:"<<count<<endl;	return 0;}*/
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表