luogu P2018 消息传递】的更多相关文章

二次联通门 : luogu P2018 消息传递 /* luogu P2018 消息传递 树形dp 原来用优先队列做了一下, T了俩点 MMP 去看正解.. 复杂度一样好不好.. 每次到达一个点,记录其子树中所有的dp值 优先向大的一边转移 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #define INF 1e8 ; char Buf[BU…
P2018 消息传递 题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的上级,B也是A的上级. 最开始的时刻是0,你要做的就是用1单位的时间把一个消息告诉某一个人,让他们自行散布消息.在任意一个时间单位中,任何一个已经接到消息的人,都可以把消息告诉他的一个直接上级或者直接下属. 现在,你想知道: 1.到底需要多长时间,消息才能传遍整个巴蜀国的所有人? 2.要使消息在传递…
P2018 消息传递 题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的上级,B也是A的上级. 最开始的时刻是0,你要做的就是用1单位的时间把一个消息告诉某一个人,让他们自行散布消息.在任意一个时间单位中,任何一个已经接到消息的人,都可以把消息告诉他的一个直接上级或者直接下属. 现在,你想知道: 1.到底需要多长时间,消息才能传遍整个巴蜀国的所有人? 2.要使消息在传递…
传送门啦 这个树形dp就没那么简单了,运用了一下贪心的思想 不同的排序方法对应着不同的转移方程,如果我们用 $ f[x] = max(f[x] , b[i] +cnt - i + 1) $ 来进行转移就要从小往大排,才能使f[x]小,如果用 $ f[x] = max(f[x] , b[i] + i - 1) $ 来转移就要从大往小排序. 第一个转移方程:$ cnt- i $ 为还有多少个才能到它,然后+1是因为国王这个点信息需要1的时间.即他子树的大小+传递到他的时间+1(向下传递) 第二个转移…
题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的上级,B也是A的上级. 最开始的时刻是0,你要做的就是用1单位的时间把一个消息告诉某一个人,让他们自行散布消息.在任意一个时间单位中,任何一个已经接到消息的人,都可以把消息告诉他的一个直接上级或者直接下属. 现在,你想知道: 1.到底需要多长时间,消息才能传遍整个巴蜀国的所有人? 2.要使消息在传递过程中消耗的时间最短,…
题面 总体来说是一道从下往上的DP+贪心: 设f[i]表示将消息传给i,i的子树全部接收到所能消耗的最小时间: 那么对于i的所有亲儿子节点j,我们会贪心地先给f[j]大的人传递,然后次大..... 可以证明,这样的答案一定是最优的: 然后f[i]=max(f[i],f[j]+cnt); 总的时间复杂度是O(n^2logn),可过: 但是还可以进一步优化(窝太懒了所以没写) 换根法,可以一遍dfs(nlogn)就求出所有的答案: #include <bits/stdc++.h> #define…
题目分析 贪心+树形DP 本来还以为要大费周折地换根,然后发现 \(n\) 很小,可以直接 \(O(n^2\log n)\) 枚举. 枚举每个节点作为根,用 \(f_x\) 表示走完以 \(x\) 为根的子树花费的最小时间. 那么如何更新呢?这个时候就要用到贪心的思想了.假设我们现在已经知道了 \(x\) 的儿子个数 \(tot\) 以及所有儿子 \(to\) 的 \(f\) 值.那么 \(x\) 必定要把信息传给每一个儿子,所以要尽量早地把信息传给 \(f\) 值较大的儿子,因此要把所有儿子的…
前言: 上篇文章学习了Android事件总线管理开源框架EventBus,EventBus的出现大大降低了开发成本以及开发难度,今天我们就利用目前大红大紫的RxJava来实现一下类似EventBus事件总线管理,现在很多人都在说用这种方式来替代EventBus,今天我们从开发效率,开发难度等维度来分析一下到底能不能取代EventBus? 先回顾一下什么是EventBus?请看这篇文章Android消息传递之EventBus 3.0使用详解(三) 消息传递相关文章地址: Android消息传递之H…
一.写在前面 还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus 3.0,专注于android的发布.订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handler,BroadCast,接口等传统方案.这么优雅的功能实现,却只有50k左右的jar包,无疑集快.小.优雅解耦于一身,目前最新版本为3.0,与之前版本有所冲突,官方网址:https://github.com/greenrobot/EventBus 二.使用简介 总的流程只需要4步:添加依赖=>编写…
Masstransit作为.Net平台下的一款优秀的开源产品却没有得到应有的关注,这段时间有机会阅读了Masstransit的源码,我觉得我有必要普及一下这个框架的使用. 值得一提的是Masstransit的源码写的非常优秀,值得每个想提高自己编程能力的.Net选手阅读,整个代码看起来赏心悦目.反之,每次打开自己公司项目的时候心情都异常沉重.所以不是.Net不行,还是咱们水平不行. 学会了Masstransit你再也不用羡慕别人有Dubbo.Mule.Akka什么的了,当然在某些方面他们的使用场…