我也不知道是從哪兒來的題 樹(矩陣樹定理)

2021-09-26 21:33:45 字數 2348 閱讀 5414

給一棵n 個節點的樹,節點分別編號為0 到n - 1。

你可以通過如下的操作來修改這棵樹:

首先先刪去樹上的一條邊,此時樹會**為兩個連通塊,然後在兩個連通塊之間加上一條新的邊使得它們變成一棵新的樹。

問有多少棵n 個節點的樹可以通過對原樹進行不超過k 次這樣的操作來得到,答案對10^9 + 7 取模。

如果有一條邊(u; v) 出現在了樹a 中且不在樹b中,我們就認為樹a 和樹b 是不同的。

考慮如果建出乙個完全圖

把非樹邊設為x

xx,樹邊設為111

其實求得就是矩陣樹求出行列式後x

ix^i

xi的係數由於模數不友好,直接做是o(n

5)

o(n^5)

o(n5)的

由於顯然最後行列式是乙個n−1

n-1n−

1次多項式

帶入x =[

1,n]

x=[1,n]

x=[1,n

]求出點值後高斯消元或者拉格朗日把原多項式搞出來就是了

複雜度o(n

4)

o(n^4)

o(n4

)

#include

using

namespace std;

const

int rlen=

1<<20|

1;inline

chargc(

)#define gc getchar

inline

intread()

#define ll long long

#define re register

#define pii pair

#define fi first

#define se second

#define pb push_back

#define cs const

#define bg begin

const

int mod=

1e9+7;

inline

intadd

(int a,

int b)

inline

void

add(

int&a,

int b)

inline

intdec

(int a,

int b)

inline

void

dec(

int&a,

int b)

inline

intmul

(int a,

int b)

inline

void

mul(

int&a,

int b)

inline

intksm

(int a,

int b,

int res=1)

inline

intinv

(int x)

inline

void

chemx

(int

&a,int b)

inline

void

chemn

(int

&a,int b)

cs int n=88;

int e[n]

[n],n,k;

int a[n]

[n],f[n]

[n];

inline

intcalc

(int v)

int res=1;

for(

int i=

1;ifor(

int i=

1;i)mul

(res,a[i]

[i])

;return res;

}inline

void

gauss()

}for

(int i=n;i;i--)}

intmain()

for(

int i=

1;i<=n;i++

)for

(int i=

1;i<=n;i++

) f[i]

[n+1]=

calc

(i);

gauss()

;int res=0;

for(

int i=

1;i<=k+

1;i++

)add

(res,f[i]

[n+1])

; cout<}

我也不知道是什麼題

題意 給出平面上n個點 n 300 都在第一象限且沒有重複的,保證座標都是整數 合法的點集滿足如下要求 1 6個點,並且有4個點在x軸上 2 這六個點可以組成兩個三角形並且兩個底角都是銳角 3 乙個三角形被另乙個完全包含 畫張圖 有點醜 qaq 分析 我的第一想法是列舉座標軸上的4個點 然後想想就暴...

我也不知道的雜七雜八

pip 匯出安裝包 pip freeze requirement.txt pip 匯入安裝包 pip install r requirement.txt pip 匯入安裝包之加國內映象源 pip install r requirements.txt i 今天在後台傳模板資料到js的時候分號被轉義成了...

將個小小的故事(小強和小明),我也不知道從那裡來的

小強和小明 1.小強每天在村里晃悠,爹媽看著發愁,心想這孩子將來怎麼辦呀 小明每日都苦讀詩書,父母喜在心裡,村裡人都認定他必有出息。2.那年,小強和小明都是十九歲,小強跟著村里的外出打工,來到了高速公路的工地,保底工資三千塊 小明考上了一所重點大學,讀的是道路與橋梁專業,學費每年五千多。3.那年,小...