hdu5016】的更多相关文章

题意:给定一个n个点的图,这个图是一棵树,然后有些点建立了集市.并且没有集市的地方去集市一定是去最近的,如果距离相同,那么则去标号最小的..现在你还能在建一个集市,问建完这个集市最多有多少个点来这里.. 思路: 现对于每个点求该点到有标记点最近的距离,记录距离及其最近标号,可以用树形dp或者spfa搞.. 然后我们任意选定一个点建树,建完后进行点分治.. 对于当前分治快的跟rt,求rt到每个点的距离为dis,near为到标记点最近的距离 那么对于不同子树的点u,v,如果dis[u] + dis[…
点分治好题. ①手动开栈. ②dp预处理每个点被哪个市场控制,及其距离是多少,记作pair<int,int>数组p. ③设dis[u].first为u到重心s的距离,dis[u].second=u,到在统计的时候,若dis[u]<=(p[v].first-dis[v].first,p[v].second)(双关键字比较),则符合题意,当然这样在计算同一颗子树里的答案时,是压根不对的,但是既然这部分反正是要被减掉的,那就将错就错地计算即可了. ④最后在所有原非市场节点的ans中取一个最大的…
目录 STL标准模板库 STL简介 STL pair STL set STL vector STL string STL stack STL queue STL map upper_bound和lower_bound STL bitset greater< int>()和less< int>() 2. 数论 2.1 素数 2.1.1 素数筛选(判断 < MAXN的数是否是素数) 2.1.2 素数筛选(筛选出小于等于MAXN的素数) 2.1.3 大区间素数筛选 2.2 素数筛选…