想出多项式算法
Come up with polynomial algorithm
给定 n 张支票,每张支票都是任意(整数)货币价值,决定是否可以将这些支票分成具有相同货币价值的两部分。
我完全不知道如何解决这个问题。有没有一种算法可以在多项式时间内解决这个问题,或者这个是 NP 完全的?
是的,这是一个 NP 完全问题。它是 the subset sum problem.
的变体
实际上你可以使用动态规划在 O(n*sum/2) 中解决这个问题,首先将所有检查汇总为一个 varaibel 和,然后你可以对检查值执行 dp(接受或离开它或接受它)并在最后检查该总和是否等于 s/2.
给定 n 张支票,每张支票都是任意(整数)货币价值,决定是否可以将这些支票分成具有相同货币价值的两部分。
我完全不知道如何解决这个问题。有没有一种算法可以在多项式时间内解决这个问题,或者这个是 NP 完全的?
是的,这是一个 NP 完全问题。它是 the subset sum problem.
的变体实际上你可以使用动态规划在 O(n*sum/2) 中解决这个问题,首先将所有检查汇总为一个 varaibel 和,然后你可以对检查值执行 dp(接受或离开它或接受它)并在最后检查该总和是否等于 s/2.