2021 年百度之星·程序设计大赛 - 初赛一
1001
題意:給出一個(gè)無向圖,其中邊有兩種,附魔和沒附魔的。初始在1號(hào)點(diǎn),狀態(tài)為沒附魔,每次會(huì)等概率隨機(jī)挑選一條邊走,當(dāng)經(jīng)過附魔邊時(shí),狀態(tài)會(huì)改變(附魔->沒附魔,沒附魔->附魔),問走k步后到達(dá)n號(hào)點(diǎn)且狀態(tài)為附魔的概率。
比賽時(shí),我錯(cuò)誤的認(rèn)為走出每條路徑的概率都是相等的,一個(gè)反例如下:
?路徑1-2-5的概率為,而路徑1-3-5的概率為
首先講一下官方題解做法:
最終答案為:走k步到n且狀態(tài)為附魔的概率/任意走k步的概率
顯然任意走k步的概率為1,所以只需求出分子。我們發(fā)現(xiàn),如果沒有狀態(tài),是很容易求出1到n的概率,所以我們可以將狀態(tài)轉(zhuǎn)化到點(diǎn)上:將每一個(gè)點(diǎn)拆成兩個(gè),附魔點(diǎn)和沒附魔點(diǎn),代表當(dāng)前的狀態(tài)。若一條邊時(shí)附魔邊,則將對(duì)應(yīng)的一點(diǎn)的附魔點(diǎn)于另一點(diǎn)沒附魔點(diǎn)相連,若是普通邊,則將對(duì)應(yīng)的附魔點(diǎn)和沒附魔點(diǎn)相連。
這樣轉(zhuǎn)化后,我們發(fā)現(xiàn)只需求出1號(hào)沒附魔點(diǎn)到n號(hào)附魔點(diǎn)的概率就行了。
復(fù)雜度
接下來是我比賽時(shí)的做法:
還是求走k步到n且狀態(tài)為附魔的概率,設(shè)數(shù)組表示從i到j(luò),且滿足在j點(diǎn)是狀態(tài)為附魔的概率,表示從i到j(luò)的概率,但對(duì)在j點(diǎn)的狀態(tài)沒有限制。
考慮矩陣乘法中的一次轉(zhuǎn)移,枚舉了從i到j(luò)的一個(gè)中間點(diǎn)k,(轉(zhuǎn)移后的)可以直接加上,那么考慮,有兩種情況,從i到k時(shí)變成附魔,而從k到j(luò)狀態(tài)不變,概率為,對(duì)應(yīng)的,另一種情況的概率為,兩種情況相加即可。
?復(fù)雜度同樣為
1003
題意:有n臺(tái)電腦,其中第k臺(tái)電腦壞了,有m個(gè)交換方式依次進(jìn)行,問對(duì)于1~n,使得最后壞的電腦交換到這個(gè)位置,最少放棄幾次操作
我們可以定義一個(gè)狀態(tài)表示前i個(gè)操作,交換到j(luò)的最小代價(jià)(即最少放棄幾次操作)
對(duì)于每個(gè)交換,與其無關(guān)的剩下n-2個(gè)電腦是否放棄此次操作并無關(guān)系,所以為使代價(jià)最小,此次不放棄,即
而對(duì)于a,如果執(zhí)行此次交換操作,那么代價(jià)為,而如果放棄,則代價(jià)為,取兩者較小值即可
利用滾動(dòng)數(shù)組優(yōu)化空間,復(fù)雜度為
總結(jié)
以上是生活随笔為你收集整理的2021 年百度之星·程序设计大赛 - 初赛一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机领域有哪些常见的比赛
- 下一篇: NBA著名球星介绍