题意:
树上找两个点 使得其他点到这两点任意一点的距离的最大值最小
思路:
最大值最小 想到二分 在二分的基础上判定这个最大值是否可能
如何判定这个问题就是如何选那两个点的问题 很明显 我们要处理的是直径(不然没意义 最长的就是直径) 那么既然已经有了一个要判定的值x 不妨就选择距离直径两端点距离为x的点就好
直径上的点最多n个 算上二分的复杂度 O(nlogn)可以...
分类:
其他好文 时间:
2014-10-14 16:10:08
阅读次数:
175
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3820
Building Fire Stations
Time Limit: 5 Seconds Memory Limit: 131072 KB Special Judge
Marjar University is a beautif...
分类:
其他好文 时间:
2014-10-14 01:18:17
阅读次数:
377
题目:ZOJ Problem Set - 3820 Building Fire Stations
题意:给出n个点,n-1条边的一棵树,然后要在两个点上建立两个消防站,让所有点的到消防站最大距离的点的这个距离最小。
分析:首先先求这个树的直径,然后在树的直径的中点处把树分成两棵树,然后在把两棵树分别取中点的最大值就是ans值。
这个题目数据有点水了感觉。。。
AC代码:
...
分类:
其他好文 时间:
2014-10-13 17:53:09
阅读次数:
213
做同步赛的时候想偏了,状态总是时好时坏,这状态去区域赛果断得GG了。
题目大意:给一棵树,让求出树上两个点,使得别的点到两个点较近的点的距离最大值最小。
赛后用O(n)的算法搞了搞,其实这道题不算难。逗逼的没A。。
其实这两个点一定是树直径上的两个点,如果能想到这个就很好搞了,只需要求出树的直径,然后从中间位置把树拆成两颗子树,然后分别求出子树的中心就好了。
证明如下,假如我们已经求出树上...
分类:
其他好文 时间:
2014-10-13 16:29:39
阅读次数:
172
给一棵最多2*10^5个结点的树,选择两个结点放置设备,要求所有结点其到最近设备的最远距离最小,求出这个最小距离。
最大值最小,首先想到二分。二分一个最大距离M,先以1号结点bfs出每个结点的深度。任选一个最大深度的结点,则离他距离M的父结点u上必须要放置一个设备。然后再以u进行bfs,同样的选择出第二个结点。再把选择的两个设备结点加入队列bfs,看是否能够遍历所有点,若能就满足。
z...
分类:
其他好文 时间:
2014-10-13 15:36:09
阅读次数:
250
event系统的核心至少满足:
1.存放事件的容器,可对事件添加删除
2.事件的触发fire
上代码.
class Event(list):
def __call__(self, *args, **kwargs):
for f in self:
f(*args, **kwargs)
def f(arg): print 'execute...
分类:
编程语言 时间:
2014-10-13 12:44:10
阅读次数:
168
Building Fire Stations
Time Limit: 5 Seconds Memory Limit: 131072 KB Special Judge
Marjar University is a beautiful and peaceful place. There are N buildings and N - 1 bidirectional ro...
分类:
其他好文 时间:
2014-10-13 12:21:25
阅读次数:
123
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。
判断函数里面做了3次bfs,但是每次bfs节点...
分类:
其他好文 时间:
2014-10-13 11:26:49
阅读次数:
197
最近在尝试一个自动打卡的脚本,发现了几个问题,特此记录一下。环境:Ubuntu 12.04.4 LTSselenium 2.43.0firefox 32.0.31 本来机器上selenium,firefox都是装过的,但是firefox时不时的就更新一下,所以selenium可能不支持当前的fire...
分类:
编程语言 时间:
2014-10-10 20:16:14
阅读次数:
200
avalon的ViewModel对象从其内部EventManager里继承了三个方法,$watch、$unwatch、$fire三个方法,它们就是我们本节的主题。词如其名,非常直白,一看就知道做什么。我们先从$watch方法说起,它能监听当前的VM第一层的监控属性 与 计算属性,如果某属性是一个对象...
分类:
Web程序 时间:
2014-10-10 19:06:44
阅读次数:
217