知識補充:樹的重心
定義:對於一個點,將這個點刪去後,剩下的圖上最大的強連通分量大小不大於原圖總點數的一半
一顆樹上有1到2個重心。
讓我們隨便建一棵樹,樹的重心就是3或5
那麼樹的重心怎麼求呢
在這裡先介紹dfs版
按照定義,我們可以用遞迴求出一個點的所有子樹大小
當然要判斷原樹減去這個點及其子樹後的樹(即“上方子樹”)也就是總大小-以該點為根的樹大小
void sett(int s,int fa) { size[s]=1; f[s]=0; for(int i=head[s];i;i=edge[i].nxt) {int to=edge[i].to; if(to==fa)continue; sett(to,s); size[s]+=size[to]; f[s]=max(f[s],size[to]); } f[s]=max(f[s],steps-size[s]);steps為樹的大小 if(f[s]<f[root])root=s;//如果要求所有重心的話應把條件改為(f[s]*2<=steps)滿足即為重心 }
(可簡單了)
相關推薦
知識補充:樹的重心
定義:對於一個點,將這個點刪去後,剩下的圖上最大的強連通分量大小不大於原圖總點數的一半 一顆樹上有1到2個重心。 讓我們隨便建一棵樹,樹的重心就是3或5 那麼樹的重心怎麼求呢 在這裡先介紹dfs版 按照定義,我們可以用遞迴求出一個點的所有子樹大小 當然要判斷原樹
CTF之知識補充:網路基礎淺談(一)
開始做CTF題目的時候發現有太多的知識需要補救了,接下來就講講網路的一些基礎知識。因為是自學,肯定會不全面,大家看看就行,有不同見解的也可以在下方評論。 計算機網路體系結構的形成 在此之前,人們已經提出並設計出了計算機體系結構,從系統的角度去定義計算機的構成和
樹的知識補充
img com 赫夫曼 http es2017 ima 後序遍歷 二叉 樹的遍歷 樹與二叉樹之間的轉換: 森林與二叉樹之間的轉換: 二叉樹轉化為樹: 二叉樹轉化成森林: 樹與森林的遍歷: 樹的遍歷:先根遍歷,後根遍歷 森林的遍歷:前序遍歷,後序遍歷 赫夫曼樹及
MFC小知識一:將對話框設置為無邊框無標題欄初始最大化樣式
nts fec 按位與 tails blog 不變 無標題 設置 http 今天公司新開始的一個項目。界面模式為無邊框無標題欄初始最大化樣式。其實本來可以直接在屬性裏面將默認的Resizing換成none就可以了,那麽我想如何用代碼來實現呢?於是就百度了一下。找到
《劍指Offer》題目:樹的子結構
bool root 子結構 boolean res pub 二叉樹 amp turn 題目描述:樹的子結構 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 題目分析:此題可以拆成兩題,1.在二叉樹中查找是否存在某個結點;2.判斷兩
Java設計模式補充:回調模式、事件監聽器模式、觀察者模式(轉)
應該 hand 關閉 lan china 關註 update 使用 event 一、回調函數 為什麽首先會講回調函數呢?因為這個是理解監聽器、觀察者模式的關鍵。 什麽是回調函數 所謂的回調,用於回調的函數。 回調函數只是一個功能片段,由用戶按照回調函數調用約定來實現的
springCloud--補充:返回json與xml格式
spring cloud 返回json與xml格式 [email protected]/* */,現在還沒有找到原因,使用如下可以如常的返回json格式:@RestController public class UserController { @Autowired pri
springCloud--補充:熱部署
spring cloud 熱部署 添加依賴:pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools&
皇家利華知識分享:網站改版周期長不長,一般改版多長時間
有時 作用 友好 結構 業務 水平 切圖 時代 發展 皇家利華知識分享:網站改版周期長不長,一般改版多長時間 經常會有公司在咨詢原創先鋒時會問到一個問題,就是我們找到你們網站建設公司主要的目的是要對網站進行改版,那麽一個官網改版的時候要花多上時間呢,周期長不長?根據多年網站
Python基礎知識之:hello world,註釋,變量,數據類型
我們 重要 一個 yield code oba () turn 編程語言 從接觸編程語言以來,在我腦海裏經常有三個問號: 這是什麽? 這個有什麽用? 這個怎麽用? 我覺得初學一個東西,把這三個問號都搞明白,那麽剩下的就是孰能生巧的過程了,在接下來的博客中,每個知
BZOJ 3626 [LNOI2014]LCA:樹剖 + 差分 + 離線【將深度轉化成點權之和】
scanf tor chain stdio.h dfs lca uil sin ems 題意: 給出一個n個節點的有根樹(編號為0到n-1,根節點為0,n <= 50000)。 一個點的深度定義為這個節點到根的距離+1。 設dep[i]表示點i的深度,LC
【Mysql知識補充】
問題: 無需 mysql 數據結構 目的 opened 建表 觸發器 年齡 一、子查詢 1.定義 子查詢是將一個查詢語句嵌套在另一個查詢語句中。內層查詢語句的查詢結果,可以為外層查詢語句提供查詢條件。子查詢中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 N
Codeforces 455C Civilization:樹的直徑 + 並查集【合並樹後直徑最小】
font name read amp find() edge ceil -s class 題目鏈接:http://codeforces.com/problemset/problem/455/C 題意: 給你一個森林,n個點,m條邊。 然後有t個操作。共有兩種操
筆記:樹的認識
常識 鏈式 gpo 排序 rest 終端 ron 筆記 中序 筆記:樹的認識 基本常識: 結點1為2、3、4的父結點, 結點2、3、4是結點1的子結點。 結點2、3、4也是兄弟結點。 因為他們是同一個父結點。 同是結點2又是結點5、6的父結點
前端知識(一):HTML內容
web服務器 multipl 相同 sub 可能 gif 服務 小寫字母 height Web服務本質 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080
Django--知識補充
轉換 變量 lte port rar django () post fun 自定義標簽或過濾器 渲染變量的方法(過濾器:修改數據或格式轉換) {{ var | add }} {{ var | date:"Y-m" }} {{ var | safe }} 渲染標簽的方法 {
知識篇:新一代的數據處理平臺Hadoop簡介
Hadoop在雲計算和大數據大行其道的今天,Hadoop及其相關技術起到了非常重要的作用,是這個時代不容忽視的一個技術平臺。事實上,由於其開源、低成本和和前所未有的擴展性,Hadoop正成為新一代的數據處理平臺。Hadoop是基於Java語言構建的一套分布式數據處理框架,從其歷史發展角度我們就可以看出,Had
學習筆記:樹鏈剖分
ostream head bubuko tdi OS 題目 add uil 如何實現 現在的noip好像難度一年比一年高了啊……去年(2016)的noip竟然考了一道鏈剖……如果我當時在考場上怕不是要直接GG&hell
學習:樹狀數組&線段樹
什麽是 -m 數據規模 https 先來 輸入格式 負數 查詢 ima 先上一道題目: 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 將某一個數加上x 求出某區間每一個數的和 輸入輸出格式 輸入格式: 第一行包含兩個整數N、M,分別表示該數列數字的個數和操作的
第二篇 python基礎知識總結:數據、運算符
pre http 賦值 float 異或 mage IT ext inpu 引子 我們跟任何人交流,說的每一句都是都一些文字組成,包含名詞、動詞、語句、標點符號等,組成我們說普通話構成的基本要素。同理我們學習python語言也要明白這些基本要素,也就是我們常說的