Bzoj4481 Jsoi2015 非誠勿擾

2022-05-13 12:33:07 字數 1660 閱讀 8189

time limit: 20 sec  memory limit: 512 mb

submit: 147  solved: 75

輸入第一行包含2個自然數n,m,表示有n個女性和n個男性,以及所有女

性的「如意郎君列表」長度之和是m。

接下來一行乙個實數p,為女性接受男性的概率。

接下來m行,每行包含兩個整數a,b,表示男性b在女性a的「如意郎君列表」

中。輸入保證每個女性的「如意郎君列表」中的男性出現切僅出現一次。

1≤n,m≤500,000,0.4≤p<0.6

輸出1行,包含乙個實數,四捨五入後保留到小數點後2位,表示不穩定因素的期望數目。

5 50.5

5 13 2

2 22 1

3 10.89

by 佚名上傳

數學問題 期望 腦洞題

期望還能這麼玩兒,真的神奇。

女方如果選中某個人,可能是第一輪選中的,也可能是第一輪沒選人,在第二輪選中的,也可能在第三輪,第四輪……

看上去是個無限項的等比數列求和。

利用等比數列公式計算女方選某個人的概率:

$ \frac$

在n無窮大的時候$ p^n $趨近於0,可以直接忽視掉。

這樣就可以算出這個位置被選的概率。

這樣,之後開始選擇的女方如果選了某個更靠前位置,就多了這麼些概率貢獻乙個逆序對。

將邊按雙關鍵字排序,用樹狀陣列維護乙個類似逆序對的東西即可。

資料卡精度,需要long double

1

/*by silvern

*/2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8const

int mxn=500010;9

intread()

12while(ch>='

0' && ch<='9')

13return x*f;14}

15struct

edge

20}a[mxn],c[mxn];

21//

22int

n,m;

23int

len[mxn];

24long

double

p,pr[mxn];

25long

double

t[mxn];

26void add(int x,double v)}

27long

double ask(int x)return

res;};

28 inline long

double getp(int x,int y)

29int

main()

34for(int i=1;i<=m;i++)

37 sort(a+1,a+m+1

);38

long

double ans=0.0;39

int hd=1;40

for(int i=1;i<=n;i++)49}

50 printf("

%.2f\n

",(double

)ans);

51return0;

52 }

BZOJ 4481 Jsoi2015 非誠勿擾

輸入第一行包含2個自然數n,m,表示有n個女性和n個男性,以及所有女 性的 如意郎君列表 長度之和是m。接下來一行乙個實數p,為女性接受男性的概率。接下來m行,每行包含兩個整數a,b,表示男性b在女性a的 如意郎君列表 中。輸入保證每個女性的 如意郎君列表 中的男性出現切僅出現一次。1 n,m 50...

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...