gpt4 book ai didi

algorithm - Avoidland - 放置 n 个棋子的最小步数,以便每行和每列中只有一个?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:17:18 24 4
gpt4 key购买 nike

<分区>

Avoidland 是一个在 n×n 棋盘上玩的谜题,棋盘上有 n 个棋子。棋子最初放置在棋盘的方格上,每个方格最多一个棋子。目标是移动棋子,使它们相互“避开”——一行或一列不能有超过一个棋子。在一次移动中,棋子可以移动到相邻的未被占用的方格,即与棋子当前位置共享一侧并且没有棋子的方格。给定棋子的初始位置,解决难题所需的最少步数是多少?

输入第一行包含一个整数 n,然后是 n 行。第 i 行包含第 i 个 pawn 的初始行和列坐标,以空格分隔。每个坐标是 1 到 n 之间的整数。您可以假设 n 最多为 1000000。

输出该行包含解决难题所需的最少步数。

Sample Input 1   
3
1 3
2 3
3 1

Sample Output 1
1


Sample Input 2
4
1 4
4 1
1 1
4 4

Sample Output 2
4

我的方法:该解决方案要求每一行和每一列都恰好有 1 个 pawn。对于初始配置,制作一个最右边的列,其中包含每行中的兵数总和。制作一个底部行,其中包含每列中棋子数量的总和。现在我们需要找到使这些数组中的每一个都变成全 1 并将它们相加的最少步骤数,但我很困惑如何做到这一点。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com