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...