首页 > 其他 > 详细

淀(点)粉(分)质(治)的百来种做法

时间:2019-03-02 23:14:58      阅读:195      评论:0      收藏:0      [点我收藏+]

$\large{先说好,因为本人比较菜,只能口胡一下板子了,有什么优(毒)秀(瘤)的题后期再更吧……}$

淀粉质,是一种很好吃的高能量食品,但如果不及时消化,就会消化不良(大雾)

来自百度百科的介绍

板子题:$\Large{Luogu}P3806$

首先考虑一下,不管怎么做,总要从脑袋到脚,跑个树高,而这又是个无根树

于是我们就抛出了我们树的重心:

- 利用$DFS$找到每个节点下面子树的大小(包括自己),同时用整棵树的大小减去这个值求出这个节点另一边的大小(不理解的话可以画图理解一下QQwQ)

技术分享图片

如上图,当我们在计算$2$节点时会计算其子树大小(为4),并用总数减子树大小(为6),再取$max$

像这样不停的找一个两边比较平衡的节点就可以找到中心,代码如下:

inline void FocFind(int pos,int fa)
{
    maxn[pos]=0;size[pos]=1;
    for(int i=head[pos];i;i=edge[i].next)
        if(!vis[edge[i].to]&&edge[i].to!=fa)
        {
            FocFind(edge[i].to,pos);
            size[pos]+=size[edge[i].to];
            maxn[pos]=max(maxn[pos],size[edge[i].to]);
        }
    maxn[pos]=max(maxn[pos],sum-size[pos]);
    if(maxn[foc]>maxn[pos]) foc=pos;
}

(初始化我就不写了,反正很水)

 

淀(点)粉(分)质(治)的百来种做法

原文:https://www.cnblogs.com/wo-shi-zhen-de-cai/p/10463378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!