zgjja


私信TA

用户名:zgjja

访问量:11997

签 名:

X_X

等  级
排  名 147
经  验 7306
参赛次数 0
文章发表 71
年  龄 0
在职情况 学生
学  校
专  业 X_X

  自我简介:

TA的其他文章

两种方法(C++)
浏览:98

解题思路:
两步走:1.先求八皇后问题;2.把坐标代入求和,取最大值即可。

参考1:https://www.zhihu.com/question/27710152/answer/37758735

参考2:https://zhuanlan.zhihu.com/p/35915489


注意事项:
1.使用标准库;

2.在参考上加一点本题的要求即可。

参考代码:

from itertools import permutations

n, res = 8, []
value = [list(map(int, input().split())) for _ in range(n)]
for vec in permutations(range(n)):
    if n == len(set(vec[i] + i for i in range(n))) == len(set(vec[i] - i for i in range(n))):
        res.append(vec)
print(max([sum(value[j][k] for j, k in zip([i for i in range(n)], res_))] for res_ in res)[-1])


 

0.0分

2 人评分

  评论区

  • «
  • »