八皇后问题中计算计算某个位置上的皇后与其他皇后的冲突数c++代码和注释
时间: 2023-05-28 10:03:25 浏览: 51
下面是一个Python实现:
```python
def conflict(board, row, col):
"""
计算某个位置上的皇后与其他皇后的冲突数
:param board: 表示棋盘的二维列表
:param row: 行数
:param col: 列数
:return: 冲突数
"""
# 检查列上的冲突
count = 0
for i in range(len(board)):
if i != row and board[i][col] == 1:
count += 1
# 检查左上-右下对角线上的冲突
i, j = row-1, col-1
while i >= 0 and j >= 0:
if board[i][j] == 1:
count += 1
i, j = i-1, j-1
i, j = row+1, col+1
while i < len(board) and j < len(board):
if board[i][j] == 1:
count += 1
i, j = i+1, j+1
# 检查右上-左下对角线上的冲突
i, j = row-1, col+1
while i >= 0 and j < len(board):
if board[i][j] == 1:
count += 1
i, j = i-1, j+1
i, j = row+1, col-1
while i < len(board) and j >= 0:
if board[i][j] == 1:
count += 1
i, j = i+1, j-1
return count
```
该函数接受一个表示棋盘的二维列表、行数和列数作为参数,并返回该位置上的皇后与其他皇后的冲突数。为了计算冲突数,我们需要检查该位置所在的列、左上-右下对角线、右上-左下对角线上是否有其他皇后,如果有,则冲突数加1。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)