給一棵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.那年,小...