1347 问题 G: 八皇后

时间限制: 1s 内存限制: 128MB 提交: 1157 解决: 449
题目描述

检查一个如下的6  x  6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。

八皇后

上面的布局可以用序列2  4  6  1  3  5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:  

 行号  1  2  3  4  5  6  

 列号  2  4  6  1  3  5  

 这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把它们以上面的序列方法输出。解按字典顺序排列。请输出前3个解。最后一行是解的总个数。   

特别注意:  对于更大的N(棋盘大小N  x  N)你的程序应当改进得更有效。不要事先计算出所有解然后只输出(或是找到一个关于它的公式),这是作弊!

输入
一个数字N  (6  < =  N  < =  13)  表示棋盘是N  x  N大小的。 
输出
前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。 
样例输入
6
样例输出
2 4 6 1 3 5 
3 6 2 5 1 4 
4 1 5 2 6 3 
4
提示
零基础同学可以先学习视频课程,包含C/C++、Python、百练、蓝桥杯辅导、算法数据结构等课程,提供视频讲解以及配套习题,还有老师答疑,点击这里了解课程详情

比赛公告

题号:1341,1342,1343,1344,1345,1346,1347,1348,1349,1350

点击上方导航栏的训练,点击题库,寻找题号即可找到对应题目,比赛结束后,请通过训练->题库->寻找对应题目的方式做题

因为不确定因素太多,就不再安排大家轮流讲题了,大家做不出题可以在测试结束后去题库找对应的题目看题解,希望大家自觉练习,认真练习,考核测试会采取不同与现在测试的方式,两个月后综合测试成绩不达标者会退出实验室,希望大家认真对待