1. 程式人生 > >概率——2016青島icpc區域賽 C

概率——2016青島icpc區域賽 C

部落格目錄

一、原題

原題傳送門(vjudge)

原題傳送門(杭電原題)

Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorative stripes in the coating, of length L. 
While the length of remaining pocky is longer than d, we perform the following procedure. We break the pocky at any point on it in an equal possibility and this will divide the remaining pocky into two parts. Take the left part and eat it. When it is not longer than d, we do not repeat this procedure. 
Now we want to know the expected number of times we should repeat the procedure above. Round it to 6 decimal places behind the decimal point. 

InputThe first line of input contains an integer N which is the number of test cases. Each of the N lines contains two float-numbers L and d respectively with at most 5 decimal places behind the decimal point where 1 ≤ d, L ≤ 150. 
OutputFor each test case, output the expected number of times rounded to 6 decimal places behind the decimal point in a line.Sample Input

6
1.0 1.0
2.0 1.0
4.0 1.0
8.0 1.0
16.0 1.0
7.00 3.00

Sample Output

0.000000
1.693147
2.386294
3.079442
3.772589
1.847298

二、題目大意

一根麵條橫著放,等概率地從中選取一個點,吃掉左邊部分,然後再選再吃。直到剩下的部分小於等於b就停止,問吃的次數的期望。

三、分析

實戰的方法:  重現賽時根據樣例猜公式,一看小數位數跟lnx有關,湊一湊公式就出來了。

正兒八經的做法:  事後查資料推公式:

    網上為數不多的題解都是猜出來的公式,複習了一下概率論自己推導了好久都沒弄出來,直到看到這個 傳送門 大神的部落格,然後現自己總結一下:

    根據概率論的知識:期望=∑(子事件發生的概率*子事件貢獻的期望) 。而對於連續模型來講,求和就是積分。

設長度為x的麵條,所期望的次數為f(x),畫個t軸:0———b————————x   ----->t的麵條(湊合看吧,其中t為座標)

當x<=b(我也忘了有沒有等號了,自己去讀題吧這裡對公式沒影響)。f(x)=0(長度小於等於n時一次也不用吃就停下了)

當x>b時,設t為0~x上的座標值,表示吃掉t~x上的麵條,自然剩下的麵條就是0~t,即吃掉剩下的麵條次數期望為f(t)

然後高等數學上的知識:對於dt表示很小的線元,點落到dt上的概率為dt/x,也就是線元長度/總長度。dt上貢獻的期望為(因為dt很小可以看成一個點,高等數學的知識):從0到dt的長度為t,所以吃掉右邊的剩下左邊的長度為t,所以期望為f(t)。

然後將b~a上所有的線元dt貢獻的期望加起來(即積分):∫(b到x) f(t)*(dt/x),x與積分無關可以提出來寫到積分號外面。

所以總的e=f(x)為:     (其中0到d上貢獻的期望為0).

接下來就是求解f(x)了,

  • 比較淺顯的:思路一:

兩邊乘一個x,然後方程兩邊對x求導,積分號正好是一個原函式形式,一求導就把積分號去掉了,就變成了一個一階微分方程,然後解方程。(早就忘了微分方程咋解了,要記得考慮+常數c)

  • 比較巧妙的:思路二:

等式兩邊直接求導,方程左邊暫時變為導數,著重處理右邊:

常數求導變為0,分數用求導公式,求導後分子上依然有積分符號(請大家自行筆算一下,就不花心思貼圖了),積分符號還存在,我們利用原始的式子處理積分符號:將這個式子解出來積分符號,然後代入上求導後的式子,消掉積分符號之後,發現也正好可以消掉等式右邊的跟f(x)有關的部分,最終得出f '(x)= 

                                        

然後根據不定積分:f(x)=lnx+c

找個特解(本題跟b跟n都有關的特例,很顯然就是n=b的情況) f(d) = ln(d) + C = 1,c=1-ln(d),然後就把c求出來了。

最終:

                

解畢。

四、AC程式碼

照著公式一寫就過了,記得考慮n<=d的情況和保留的小數位數,不想去翻之前的程式碼了。

當n>b時

ln(n)-ln(b)

當n<=b時

0.000000

相關推薦

概率——2016青島icpc區域 C

部落格目錄 一、原題 原題傳送門(vjudge) 原題傳送門(杭電原題) Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorativ

HDU 5880 Family View (2016 青島網絡 C題,AC自動機)

題意 post 更新 log 青島 bsp problem pid target 題目鏈接 2016 青島網絡賽 Problem C 題意 給出一些敏感詞,和一篇文章。現在要屏蔽這篇文章中所有出現過的敏感詞,屏蔽掉的用$‘*‘$表示。 建立$AC$自動機,查

2016 ACM/ICPC 區域(北京) E 題 bfs

解析 一個 區域賽 pac () get 標記 數組 swap https://vjudge.net/problem/UVALive-7672 題意 輸入一個五位數n 問由12345變到n的操作最少次數 不可達輸出-1 有三種操作 1.交換相鄰的位置 次數不限制 2.

2018 青島ICPC區域E ZOJ 4062 Plants vs. Zombie(二分答案)

variant 最小值 into transform [1] value mono ogr ria Plants vs. ZombiesTime Limit: 2 Seconds Memory Limit: 65536 KB BaoBao and DreamG

2018青島區域C:Flippy Sequence

   題意:找出l,r在此區域內的所有數0變為1,1變為0,進行兩次操作,問一共有多少種方法。 兩個串相同就是兩個串的異或值為0 把兩個串異或, 找出連續的1的有多少塊。 1.兩塊以上的無法用兩次操作達到效果,所以為0 2.全為1的有(n-1)*

2018 青島區域 C - Flippy Sequence

                        &nbs

2016青島icpc網路C

Pocky Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2306    Accepted Submissio

2018-11-4 ICPC區域青島) 比賽總結

比賽總結 2018-11-4 ICPC區域賽(青島) 第一次參加區域賽,知道時還有點慌,想著還有一段時間,一定要加班多學一點,但其他幾隻隊伍打完後更慌了,看學長賽後發的部落格,裡面提到的好多東西還不會,努力學了一下,到比賽前幾天反而不慌了。    值得一提的是我還

2017 ICPC區域(西安站)--- J題 LOL(DP)

nds 我們 要求 tle 思路 strings padding back 全排列 題目鏈接 problem description 5 friends play LOL together . Every one should BAN one characte

HDU 5886 Tower Defence(2016青島網絡 I題,樹的直徑 + DP)

printf true IT spa clear 期望 post const href 題目鏈接 2016 Qingdao Online Problem I 題意 在一棵給定的樹上刪掉一條邊,求剩下兩棵樹的樹的直徑中較長那的那個長度的期望,答案乘上$n-1$後輸出。

poj1259The Picnic & hdu6219 Empty Convex Polygon(17沈陽區域C)【最大空凸包】

pty sin ios 面積 image .cn names 鏈接 turn 題目鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=6219 http://poj.org/problem?id=1259 一份代碼A兩題。 題意: 給

2017ACM-ICPC區域(西安)賽後感

    距自己參加第一次區域賽已經過去一個多星期了,再一次撿起自己的部落格=-=,寫一波感想。。。     3題,鐵牌。。。     賽前看RNG打SKT時說只要RNG能贏,寧願自己打鐵,結果,RNG也沒贏,我還是打鐵了。。。     這次區域賽和上次邀請賽一般基本是暴力拿

2018 icpc區域南京網路 L題(分層最短路)

There are NN cities in the country, and MMdirectional roads from uu to v(1\le u, v\le n)v(1≤u,v≤n). Every road has a distance c_ici​. Haz

2013-2017 ACM/ICPC 區域&final 水題和銅牌題

ACM/ICPC 2013 changsha Zoj 3726 3728 3736 3735 2013 chengdu hud 4786 4788 4790 2013 hangzhou hdu 4770 4771 4772 2013 nanjing hdu 48

2017 ICPC 區域小記

上週結束了新疆最後一場區域賽 ,我的ICPC區域賽之行就完全結束了。今年參加了3場區域賽(本來我校隊伍少,哪知今年6場打進了5場),都打的不盡人意。因此遲遲沒有寫寫總結. 西安 這一場算是打的最爛的一場了. 我們週四出發,先去南京玩了一天,然後晚上才和

2018 ACM-ICPC 亞洲區域青島C-Flippy Sequence(計數)

  思路來源 https://blog.csdn.net/Game_Acm/article/details/83745455 題意 給兩個01串A串和B串,在A串中可以進行區間翻轉操作,可以使得一個區間內所有的0變成1,所有的1變成0,求恰好翻轉兩次使得A

2018 ACM-ICPC 亞洲青島區域網路 C Halting Problem

In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program, whether

UVALive - 7740 Coding Contest 2016 青島區域 (費用流)

endif bool namespace spa pre mat -- stdin main 題意:每個點i有\(s_i\)個人和\(b_i\)份食物,每個人都要找到一份食物.現在有M條有向邊,從點i到點j,容量為c,第一次走過不要緊,從第二次開始就要承擔\(p(0<

2016 ACM/ICPC亞洲區青島站現場(部分題解)

多少 條件 技術 留下 tin tdi scanf .get max 摘要   本文主要列舉並求解了2016 ACM/ICPC亞洲區青島站現場賽的部分真題,著重介紹了各個題目的解題思路,結合詳細的AC代碼,意在熟悉青島賽區的出題策略,以備戰2018青島站現場賽。 HD

2016 ICPC亞洲區域北京站 E】What a Ridiculous Election(BFS預處理)

Description In country Light Tower, a presidential election is going on. There are two candidates,  Mr. X1 and Mr. X2, and both of them are not