傳送門
考慮每一對幸運點對的貢獻,假設有 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(x−
1)統計點對個數就好了
q: 一道點分治入門題目為什麼要寫長鏈剖分a: 因為太久沒有寫過了有點忘了…
# include
using
namespace std;
typedef
long
long ll;
const
intmaxn
(1e5+5
);int first[maxn]
, cnt, n, m, lucky[20]
, tmp[maxn]
,*id,
*f[maxn]
, son[maxn]
, len[maxn]
;ll ans;
double ret;
struct edge edge[maxn]
;inline
void
add(
int u,
int v)
, first[u]
= cnt++
; edge[cnt]
=(edge)
, first[v]
= cnt++;}
void
dfs1
(int u,
int ff)
void
dfs2
(int u,
int ff)
}int
main()
bzoj 4675 點對遊戲
題目 發現乙個人如果最終拿走了 k 個點,那麼這個人的答案就是 frac sum sum dis i,j in m 考慮每乙個點對對答案的貢獻,我們列舉乙個點對,之後對於剩下的 n 2 個點我們隨便選出 k 2 對點組成我們所選擇的 k 個點,只需要看看這個點對的距離是否屬於 m 就好了 組合數劃開...
點對遊戲 題解
這道題相對來說比較簡單,主要考察對於期望的深刻理解。其實,我是屬於那種對數學期望一竅不通的人。我個人感覺做期望題可以從以下三個方面入手 考慮每個元素對答案的貢獻。比如說你做乙份卷子,只有25道選擇題,一道題4分,每道題蒙對的概率是 dfrac 假設你和我一樣是個啥都不會的菜雞,只能蒙題 那麼一道題對...
bzoj 2438 殺人遊戲(tarjan縮點)
根據題意只要找出有多少個不連通的集合就可以了。但是在判定的時候有環的話會有點麻煩,所以先縮點,在dfs。但是如果有乙個點它的所有連的點不止它乙個入度的話 而且這個點的入度為0,那麼最後剩它的時候就不用問了。include include include includeusing namespace ...