ACM訓練日記 1月4日

2021-08-14 08:27:46 字數 1981 閱讀 1647

新的一年的第一篇半周總結。昨天剛結束了常微分考試,考的我拔涼拔涼的,常微分老師對我們這一級真的是關照,相比15級的常微分期末題,難度提公升好多。。qaq,還是好好準備物理,英語吧。

雖然這半周考試有點緊張,但還是有有點收穫的,其實看了一些部落格,關於概率的主要知識點主要就是求期望和概率dp,其他還有結合組合數學的。整理一下水的幾道相關題吧。

lightoj 1038  race to 1 again

題意:給出乙個數n,我們可以選擇 1-n中可以被n整除的數字,然後用n出得到乙個新的數字n1;然後在找所有n1的因子,用n1除,直到得到1;問除的次數的期望值;

一道比較明顯的概率dp,n一定與所有因子期望有關,設n=(p1^a1)...(pn^kn)。dp[n]=((dp[1]+1)/k(dp[p1]+1)/k)+....+(dp[pk]+1)/k+(dp[n]+1)/k

,(k是因子個數,包括本身與1),整理下dp[n]=(dp[1]+dp[p1]+...dp[pk]+k)/k。然後迴圈預處理就可以了,注意時間限制,要做乙個sqrt()的處理。

lightoj 1274 beating the dataset

題意:給出n表示有n個單詞(單詞只有兩個yes與no),給出s表示有s個字母(yes又3個字母,no有2個字母),下面用1表示yes,用0表示no,問給出n和s,求所有01串將末尾去掉,頭上補上1形成的新串與原來的串有多少個不一樣,求所有組合的平均值。

這個題竟然有兩種解法,可以分別用概率dp和組合數學做。 

1,組合數學方法

來自這位大佬的證明

設1有x個,0有y個,那麼解二元方程組,x=s-2*n,y=3*n-s。

那麼最高位的時候只有為0的才會不一樣: c(x,x+y-1)(補充:第乙個位置放0,剩下x+y-1個放x個1種情況)

其他位置只要跟前面乙個位置不一樣就可以了,那麼就是說當前和前面乙個位置乙個0乙個1 , 共c(x-1 , x+y-2),因為1,0可以交換所以要乘2(補充:首端放1,剩下x+y-1個位置相當於用x+y-2個位置放n-1個1,然後用乙個0進行插空,以此形成變化,所以是(x+y-1)*c(x-1,x+y-2))。

平均值就是(2*(x+y-1)*c(x-1,x+y-2)+c(x,x+y-1)) / c(x,x+y)

(2*x*c(x,x+y-1)+c(x,x+y-1)) / c(x,x+y)

=(2*x+1)*c(x,x+y-1) /(c(x,x+y-1)+c(x-1,x+y-1))

=(2*x+1)*c(x,x+y-1) /((1+x/y)*c(x,x+y-1))

=(2*x*y+y)/(x+y)這就是最終公式了。

2,概率dp   來自這位大佬的講解  

題解:期望dp,逆推。dp[i][j][k]表示當前狀態為第i行,已經輸出了j個yes,這一行要輸出yes(0)/no(1)

因此可以得出,①如果第i要輸出yes,那麼i+1行如果輸出no,則i的期望值為i+1的期望值加上+1再乘以輸出no的概率;i+1行如果輸出yes,則i的期望值為i+1的期望值乘以輸出yes的概率。②如果第i行要輸出no,做法和①相同

遞推關係式為

dp[i][j][0]=dp[i+1][j+1][0]*p1+(dp[i+1][j][1]+1)*p2

dp[i][j][1]=(dp[i+1][j+1][0]+1*p1)*p1+dp[i+1][j][1]*p2

lightoj - 1079 just another robbery

題意:搶銀行,現在給出乙個概率p,和銀行的個數n,接下去給出每個銀行可以搶到的錢,還有搶劫這個銀行被抓的概率,問在被抓的概率小於等於p的情況下,最多搶到多少錢。

這其實是一道做過的題, 其實就是01揹包,dp[j] 代表搶劫到 j 元錢,逃跑的概率;

那麼dp[j] = max( ( dp[j - m[i]] ) * p[i])。

p[i]=1-p[i];

memset(dp,0,sizeof(dp));

dp[0]=1;

for(i=0;i=m[i];j--)}

先整理這些吧,新年快樂!

ACM訓練日記 4月1日

還是先整理下昨天收穫最多的兩道題吧,因為我太菜,直接讓全隊少a了兩個題。qaq zoj 3964 題意 給出兩個陣列a和b,a表示每一堆石子的個數,b 當b 0,alice隨便取,當b 1,alice只能取奇數個,當b 2,alice只能取偶數個 兩個人alice和bob,輪流取石子,bob隨便取 ...

ACM訓練日記 8月4日

今天雖然只a了三個題,但感覺也算是扎扎實實的三道題,分別是數獨,塗顏色,分兩組。數獨這道題很明顯是深搜,9 9的方格填滿數,使得橫排,豎排,和9個3 3的小方塊只有1到9不重複的九個數,該題的關鍵就是做好數字使用過的標記,要做三個vis i j 然後就只需要吧空著的方塊填入判斷填數字,遞迴到填滿為止...

ACM訓練日記 10月4日

今天的比賽發現了許多問題,剛上來lhj順利過了f,我把d題題意讀錯了,匆忙寫了一發結果wa了,後來才發現對坡這個詞理解錯誤,然後就lhj寫e題的搜尋,k題我並沒有讀懂,lwy來了後弄懂了題意。然後lhj在寫了dfs後說題目的樣例錯了,在lwy和他確定了題意以後發現題目讀錯了,又要重寫,我用中間空隙打...