[quote=引用 27 楼 nice_cxf 的回复:] 想错了主要算错了7,应该是10 ,实际对于n=2,结果1,n=3,结果3,其他=2*n-4 方案为:分为2组,第一组2个,其他第二组,第一组两个互通,第二组花费n-3个找到2个可以知道本组全部数据的,然后这4个两两联通,2次,4个知道全部数据,剩余n-4个花n-4次 一共1+(n-3)+2+(n-4) =
上面错了 把次数弄成层数了 得到全信息需要n-1次交流,没有任何投机取巧的办法 通知全信息需要n-2次交流,最后得到全信息的两个人都不需要通知了,他们可以去通知别人。 答案就是2(n-1) -1 lg(n)向上取整 *2 是能够并发 n/2 路时,最快的通知时间步数。
想错了主要算错了7,应该是10 ,实际对于n=2,结果1,n=3,结果3,其他=2*n-4 方案为:分为2组,第一组2个,其他第二组,第一组两个互通,第二组花费n-3个找到2个可以知道本组全部数据的,然后这4个两两联通,2次,4个知道全部数据,剩余n-4个花n-4次 一共1+(n-3)+2+(n-4) =
遍历 1~n 这n个人; 首先取出 1号 和 2号, 如果 1 认识 2, 那么把 1 去掉;--如果1不认识2,就可以把2去掉了。 如果 2 认识 1, 那么把 2 去掉; 如果 1 和 2 都互相不认识,把他们都去掉; 如果有剩下,在拿剩下的和3号进行比较; 如果没有剩下的,则拿出3号和4号进行比较; 如此循环; 最后若剩下最后1个人,再遍历一遍看是否剩下的n-1个人都认识它 时间复杂度分析: 每对之间的比较最多比较2次, 每对之间的比较至少淘汰1个人,要淘汰n-1个人最多比较 2*(n-1)次; 所以时间复杂度是 O(n)的
我认识的一位大神说 构建 平衡二叉树解决
65,180
社区成员
250,527
社区内容
加载中
试试用AI创作助手写篇文章吧