标签: algorithm
我小学的侄子问我这个看似简单的数学问题。我只能想到蛮力方法。但是当n很大时会变得很难看。是否有一个不错的算法可以通过计算机来解决它?
感谢。
答案 0 :(得分:5)
两个数字k和2k不能同时属于无分区子集,因此该子集不能包含超过ceil(n/2)个数字。 只需将floor(n/2)+1的所有数字都带到n。
k
2k
ceil(n/2)
floor(n/2)+1
n
答案 1 :(得分:0)
这与在comparability graph中查找具有多项式时间算法的独立集相同,因为它是一个完美的图。
看看这个:https://cs.stackexchange.com/questions/10274/how-to-find-the-maximum-independent-set-of-a-directed-graph