【发布时间】:2021-07-14 13:04:12
【问题描述】:
我正在处理以前的编程竞赛问题,但我不知道如何解决这个问题(我已经写出了原始单词问题的上下文)。
给定一个具有 n 个节点的无向图,从 1-n 和 m 个边编号,最多选择 n-k 个节点,这样如果其他人选择具有最高数字的 k 个节点(在您没有选择的那些节点中),则没有一个您选择的节点将与他的相邻(共享一条边)。尽可能多地选择。
我能想到的唯一解决方案是检查所有可能性,但这已经超出了时间限制。有没有办法操纵图的邻接矩阵以获得解决方案?或者也许是动态规划?
【问题讨论】:
-
我不明白问题的“最多选择 n-k 个节点”部分。为什么要选择多个节点?
-
选择没有边的节点?!
-
为什么不选择0节点?那么无论其他人选择什么,他的顶点都不会与你的任何顶点相邻。
-
@orlp 我同意这个问题不清楚。做出最初选择的人似乎缺乏目标。 But here's an example where you'd have to choose more than one node.我假设你至少要选择一个节点,并且n=6,k=3。唯一的选项是选择 [6,4,2] 或 [5,3] 或 [5,3,1]。
-
@user3386109 这实际上是一个好点。虽然选择 0 节点的策略总是有效的。