2023年10月30日提高組 T1 A

2021-08-30 11:18:14 字數 853 閱讀 8371

求樹上聯通快中最大值與最小值之差為k

kk的方案數

設最大值與最小值之差為xxx

x

xx正好為k

kk的方案數=x≤

k=x\leq k

=x≤k

的方案數-x

x<

k的方案數

於是我們就可以樹形dpdp

dp啦fi=

∏(fs

on+1

)f_i=\prod (f_+1)

fi​=∏(

fson

​+1)

#include

#define mod 19260817

using

namespace std;

typedef

long

long ll;

int l[

3501

],n,k,tot,v[

3501];

struct nodee[

7001];

inline

void

add(

register

int u,

register

int v)

;l[u]

=tot;

return;}

ll ans;

inline ll dp

(register

int x,

register

int fa,

register

int mx)

signed

main()

2023年10月30日提高組

jzoj 5194 盟主的憂慮 jzoj 5907 輕功 問乙個樹中有多少個連通塊最大最小點權之差等於kkk 也就是 k 的個數 k 1 的 個數 k 的個數 k 1 的個數 k 的個數 k 1 的 個數,那麼就可以列舉點,對於這個點求的是以它為最大點權符合要求的個數,那麼容易得到合法條件a m a...

2023年10月30日提高組 T3 C

給定一棵無邊權樹,中間新穿插m mm條有邊權的邊,問原樹中所有邊連向的兩個點在失去此邊後的最短路 比較容易想到暴力spf aspfa spfa o n ke o nke o nke include include include include using namespace std int n,m...

2023年10月29日提高組 T1 A

n nn個球,m mm個盤,盤子不能空,求本質上不相同的方案數 首先深搜 include using namespace std int n,m,ans inline void dfs register int dep,register int sy,register int last 分完了,統計...