我正在尝试解决停止邮递员问题,但我找不到任何算法来解决它。问题是这样的:
有 n 个房子,编号从 1 到 n,还有 n 个邮递员,每个房子都有 n 封信要寄到每个房子里。邮递员决定了一个计划,即每个邮递员在不同的时间准确地访问每个房子一次,即任何房子在任何时候最多有一个邮递员。由于没有任何邮递员像其他任何邮递员一样,因此邮递员希望在将邮件投递到 n 个房子的过程中,没有邮递员会遇到任何其他邮递员。因此,他希望邮递员在特定房屋之后停止邮寄。也就是说,邮递员想要找到一个序列站,这样第i 位邮递员一旦访问了那个房子,就会在第 stop[i] 个房子之后停止发帖。由于他想确保每个房子最多有一个职位,他必须选择序列停止这样,如果邮递员 A 在时间 T 访问房子 H,并且他在房子之后停止投递,那么在时间 T 之后没有其他邮递员访问房子 H。帮助邮递员找到这样的序列stop。
输入如下:
首先n(1≤n≤100 ),表示邮递员和房屋的数量。然后是n行,每行包含n 个正整数。第i行中的第 j 个整数表示第i 个邮递员访问第j 个房子的时间。
示例:n = 3
顺序是:
1 2 3
4 5 6
7 8 9
输出的停止数组应该是:
3 2 1
,即第 1 邮递员在第 3 宫、第 2 在第 2 宫和第 3 在第 1 宫停止投递。
我应该使用什么算法来解决这个问题?