摘要:
QTREE2经典的倍增思想题目:给出一棵树,求:1.两点之间距离。2.从节点x到节点y最短路径上第k个节点的编号。分析: 第一问的话,随便以一个节点为根,求得其他节点到根的距离,然后对于每个询问(x,y),想求得lca(x,y),直接用dis[x]+dis[y]-2*dis[ lca(x,y) ]即可。 第二问的话,可以用倍增的方式求。我们通过求得节点x,y,lca(x,y)的深度,判断第k个节点落在哪个链上,该链是指是从x到根或者从y到根。最后倍增可以轻松求出一个链上第k个父亲是谁了。 我实现的时候,lca以及求某个节点的第k个祖先都是用倍增的思想实现。#include #incl... 阅读全文
摘要:
1146: [CTSC2008]网络管理NetworkTime Limit:50 SecMemory Limit:162 MBSubmit:870Solved:299[Submit][Status]DescriptionM公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门。为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络。该网络的结构由N个路由器和N-1条高速光缆组成。每个部门都有一个专属的路由器,部门局域网内的所有机器都联向这个路由器,然后再通过这个通信子网与其他部门进行通信联络。该网络结构保证网络中的任意两个路由器之间都存在一条直接或间接路 阅读全文