while True:
try:
#我们先白皇后,再黑皇后
n = int(input()) #n是一开始的黑白皇后个数
s = [] #存放原始的0,1位置
result = []
temp_W = [None for x in range(n)] #临时放一下白皇后
temp_B = [None for x in range(n)] #临时放一下黑皇后
for i in range(n):
s.append(input().split()) #输入0, 1位置
def valid_W(temp_W,row): #判断当前的位置上放白皇后是否合法
if s[row][temp_W[row]] == '1': #判断这个位置能否放置皇后
for i in range(row):
#下面这个判断条件是:判断对角线,判断是否是白皇后自己的列
if abs(temp_W[i] - temp_W[row]) == abs(i-row) or temp_W[i] == temp_W[row]:
return False
return True
def valid_B(temp_B,row,temp_W): #判断当前的位置放黑皇后是否合法
if s[row][temp_B[row]] == '1' and temp_B[row] != temp_W[row]: #判断这个位置能否放置皇后
for i in range(row):
#判断是否对角线,是否是自己的列,判断这个位置有没有先放上白皇后
if abs(temp_B[i] - temp_B[row]) == abs(i-row) or temp_B[i] == temp_B[row]:
return False
return True
def dfs_W(temp_W,row): #temp记录当前所有合法的皇后的位置,row是继续往下一行里面放皇后
if row == n: #当前进行到n,表示找到了白皇后的一种排列方式,跳出递归
dfs_B(temp_B,0) #白皇后排好之后跳到排列黑皇后
else:
for col in range(n): #col是列,就是要遍历这一行的所有列,看在某个位置上是否合法
temp_W[row] = col
if valid_W(temp_W,row):
dfs_W(temp_W,row+1)
def dfs_B(temp_B, row): #temp记录当前所有合法的皇后的位置,row是继续往下一行里面放皇后
if row == n: #当前进行到n,表示找到了n皇后的一种排列方式,跳出递归
result.append(temp_B[:])#将找到的黑皇后排列方式存储到result里面
return
else:
for col in range(n): #col是列,就是要遍历这一行的所有列,看在某个位置上是否合法
temp_B[row] = col
if valid_B(temp_B,row,temp_W):
dfs_B(temp_B,row+1)
dfs_W(temp_W,0)
print(result)
print(len(result))
except:
break
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
内容概要: 这份资源是一系列针对蓝桥杯官网试题的算法训练代码集合,包含了多个不同难度级别的编程题目和解决方案。题目涉及基础数学运算、数据结构处理、算法设计等多个领域,如“1的个数”、“寻找数组中最大值”、“石子游戏”等。代码以Python语言实现,易于理解与学习。 适用人群: 资源适合所有准备参加蓝桥杯编程竞赛或对算法感兴趣的学生、编程爱好者和开发者。尤其适合初学者用来打基础,以及有经验的参赛者用来提高算法能力和解题技巧。 使用场景及目标: 作为蓝桥杯竞赛的备赛材料,帮助参赛者熟悉比赛题型和难度。 作为编程训练的实战演练,提升算法思维和编程实践能力。 作为教学辅助资料,用于课堂教学或个人自学。 其他说明: 题目分类明确,从入门到提高,循序渐进,有助于系统性学习。 所有代码均以Python语言编写,简洁易懂,适合快速学习和应用。 题目覆盖面广,从基础的数学问题到复杂的算法设计,有助于全面提升编程能力。 适合作为蓝桥杯竞赛的实战模拟,也适合作为日常编程练习。
资源推荐
资源详情
资源评论
收起资源包目录
蓝桥杯官网试题.rar (51个子文件)
蓝桥杯官网试题
算法提高
幸运顾客.py 1KB
最长滑雪道.py 749B
最长公共子序列.py 1KB
算法训练
6-1 递归求二项式系数值.py 763B
寻找数组中最大值.py 449B
1的个数.py 431B
2的次幂表示.py 962B
石子游戏.py 1KB
5-1最小公倍数.py 442B
最小乘积(基本型).py 990B
Torry的困惑.py 1KB
区间k大数查询.py 821B
预测身高.py 195B
最大的算式.py 2KB
k好数.py 488B
基础练习
十六进制转十进制.py 29B
Sine之舞.py 884B
矩形面积交.py 433B
两数相加.py 41B
完美的代价.py 2KB
矩阵乘法.py 978B
八皇后new.py 1KB
数列特征.py 496B
字母图形.py 477B
特殊的数字.py 460B
时间转换.py 161B
字符串对比.py 302B
报时助手.py 846B
字串01.py 151B
八皇后.py 847B
杨辉三角.py 339B
回形取数.py 1KB
芯片测试.py 330B
特殊回文数.py 389B
数列排序.py 132B
2n皇后new.py 2KB
查找整数.py 302B
十六进制转八进制.py 109B
Huffuman树.py 252B
FJ的字符串.py 173B
2n皇后.py 3KB
高精度加法.py 1KB
龟兔赛跑预测.py 690B
数的读法.py 1KB
分解质因数.py 1KB
序列求和.py 260B
十进制转十六进制.py 38B
入门训练
A+B问题.py 39B
圆的面积.py 80B
Fibonacci数列.py 186B
序列求和.py 125B
共 51 条
- 1
资源评论
桃宝护卫队
- 粉丝: 3770
- 资源: 103
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功