題目
發現乙個人如果最終拿走了\(k\)個點,那麼這個人的答案就是
\[\frac\sum_^\sum_^[dis(i,j)\in m]}}
\]考慮每乙個點對對答案的貢獻,我們列舉乙個點對,之後對於剩下的\(n-2\)個點我們隨便選出\(k-2\)對點組成我們所選擇的\(k\)個點,只需要看看這個點對的距離是否屬於\(m\)就好了
組合數劃開發現是\(\frac\),於是我們可以直接長鏈剖分求後面那個柿子就好了
**
#include#include#include#include#define re register
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
const int maxn=50005;
inline int read()
struct ee[maxn<<1];
int len[maxn],n,m,son[maxn];
int deep[maxn],head[maxn];
int tax[maxn],*id=tax,*f[maxn];
ll ans;
int num,a[15];
inline void add(int x,int y)
void dfs1(int x)
len[x]=len[son[x]]+1;
}void dfs(int x)
BZOJ4675 點對遊戲
傳送門 考慮每一對幸運點對的貢獻,假設有 v vv 對 一共可以選擇 x xx 個點,總共 n nn 個點 那麼答案就是 v a n 2x 2x x 1 anx v x x 1 n n 1 v times frac x x 1 frac v anx an 2 x 2 x x 1 n n 1 v x ...
點對遊戲 題解
這道題相對來說比較簡單,主要考察對於期望的深刻理解。其實,我是屬於那種對數學期望一竅不通的人。我個人感覺做期望題可以從以下三個方面入手 考慮每個元素對答案的貢獻。比如說你做乙份卷子,只有25道選擇題,一道題4分,每道題蒙對的概率是 dfrac 假設你和我一樣是個啥都不會的菜雞,只能蒙題 那麼一道題對...
bzoj 2438 殺人遊戲(tarjan縮點)
根據題意只要找出有多少個不連通的集合就可以了。但是在判定的時候有環的話會有點麻煩,所以先縮點,在dfs。但是如果有乙個點它的所有連的點不止它乙個入度的話 而且這個點的入度為0,那麼最後剩它的時候就不用問了。include include include includeusing namespace ...