划分i,j为内部已记录的点. (内部点要求,对任意不同的两点m,n,都标志了i - m - n -j和为最大值时的路径, ) 逐个添加其他还没记录的点. 记录新加点x的要求是: 1,遍选所有内部标志的i - m - n -j路径,选取i -m -x -n-j最大值时的路径作为 i - x - j和 的路径. 至所有点都记录为内部点为止
(记录时一般只记录 i - x ,x - j 中x相邻的,) 需要空间为n*n复杂度
[解决办法] 今天一直nc,请无视我说的话,刚发现我题目意思理解错了。。。我回去补补最大团。不过如果用暴力的话,就是穷举所有组合即可。 [解决办法] 从任意个节点发,把所有走N步的情况遍历到,n(m1..mm),n-1(m1...n-1,n+1...mm),....1 第一个节点foreach(node tn in m) 第二个节点foreach(node tn-1 in m) if(tn-1==tn) { continue; } [解决办法] 贪心算法 假设前n个点就是满足的点, 计算并保存每个点的权值为此点与其他n-1个点的连线的权值之和 设点K为剩下的m-n个点中的一个,L为n中的一个, 计算用K点取代L点时K点的权值,重复计算n中的所有点,用K取代与L权值差最大的那个L点 遍历m-n中的点重复上面操作 时间复杂度为O(n*(n-1)+n*(n-1)*(m-n))<O(m^3)