description
給出一棵n 個點的樹,點的編號是1, 2,。。。,n。
對於3 個點,如果不存在一條簡單路徑同時經過a,b,c,那麼是乙個分叉。
統計不同分叉的數量。
樹 無環,連通的無向圖
簡單路徑 不重複經過同乙個點的路徑
input
第1 行,1 個整數n。接下來(n -1) 行,每行2 個整數ai,bi,表示點ai 和點bi 間有一條邊。
output
1 個整數,表示所求的值。
sample input
1 21 3
1 41 5
sample output
data constraint
• 對於30% 的資料,n <= 100;
• 對於50% 的資料,n <= 1000;
• 對於100% 的資料,1 <= n <= 10^5。
我們可以統計出每個節點的子樹大小
然後,可以換一種方法想:我們求出所有可能的c(n,3)-可以用簡單路徑連成的點=不可以的點
題目說沒有重複的情況出現,那麼對於乙個節點作「中轉站」的情況下,是存在有
然後我們每次換根,求下乙個節點可以求出的和
#include
#include
using namespace std;
int zs[200010],father[200010],last[400010],head[200010],next[400010],n,tot,a[200010],b[200010];
long long ans,num;
void insert(int
x,int
y)void find (intx)}
void dfs (int
x) a[x]=zs[x];
for (int i=head[x];i;i=next[i])
if (last[i]!=father[x])
}int main()
find(1);
dfs(1);
long long sum=(long long)n*(n-1)*(n-2)/6;
printf("%lld",sum-ans);
return
0;}
數學 組合數 Jzoj P4257 著色
description input 兩個整數n 1 n 8 k 1 k 1000 n代表他要塗的是書裡的第n張,k代表有k中不同的顏料選擇。這本書的內容請看後面!output 輸出乙個整數。代表合法的方案數。sample input 輸入1 2 2輸入2 5 3輸入3 7 3 sample outp...
bfs 狀壓 Jzoj P2121 分球
description input 輸入檔案包含多組資料。第一行為k,表示資料的總數。每組資料的第一行是n 3 n 7 第二行是2n個盒子的初始狀態。金球用a表示,銀球用b表示,空盒用空格表示。每兩組相鄰資料用空行隔開。output 對於每一組資料,若無解則輸出一行 1,若有解,輸出最少移動次數,相...
數學 三分 講解
原文 二分法作為分治中最常見的方法,適用於單調函式,逼近求解某點的值。但當函式是凸性函式時,二分法就無法適用,這時三分法就可以 大顯身手 如圖,類似二分的定義left和right,mid left right 2,midmid mid right 2 如果mid靠近極值點,則right midmid...