牛客網 每日一題 5月19日題目精講 比賽

2022-05-05 14:24:07 字數 2401 閱讀 8054

時間限制:c/c++

1秒,其他語言2秒

空間限制:c/c++

131072k,其他語言262144k

64bit io format:

%lld

你在打比賽,這場比賽總共有12個題

對於第i個題,你的隊伍有a[i]的機率解決她

如果解決不了她呢?

由於所有人討論的都很大聲

所以你有b[i]的概率從左邊那個隊那裡聽會這個題的做法

有c[i]的概率從右邊那個隊那裡聽會這個題的做法

請問最終你們隊伍解出0-12題的概率分別是多少

輸入描述:

第一行12個數表示a[1] -> a[12] 第二行12個數表示b[1] -> b[12] 第三行12個數表示c[1] -> c[12]

輸出描述:

輸出13行,第i行表示解出i-1題的概率

保留6位小數

示例1輸入

複製

0.20

0.30

0.37

0.40

0.45

0.50

0.57

0.60

0.75

0.76

0.77

0.83

0.85

0.88

0.90

0.94

0.100

0.104

0.105

0.107

0.115

0.120

0.122

0.125

0.128

0.130

0.134

0.140

0.149

0.150

0.152

0.155

0.170

0.183

0.203

0.240

輸出

複製

0.000000

0.000000

0.000000

0.000011

0.000160

0.001508

0.009620

0.041938

0.124153

0.243773

0.301960

0.212453

0.064424

一開始看題目有點懵,12個題咋輸出十三個答案,後來才反應過來,第i行表示解出i-1題的概率,意思是把做出0~12個題的概率依次輸出,我原以為是第4題的概率

樣例中前三個都是0.000000,並不是概率為0,而是保留6位小數,後面省略了

求第i題做出的概率可以正著求也可以逆著,逆著方便,先求做不出的概率,也就是q = ( 1 -a [ i ] ) *( 1 -b [ i ] ) * ( 1- c [ i ] ) ,(第i題我不會,左邊也沒聽到,右邊也沒聽到),做對的概率就是p= 1 - q

然後求 第i行表示解出i-1題的概率,典型的dp遞推

dp[i][j]表示前i個問題,咱做出j個題的概率

由第i-1個題地推過來,第i個題有可能做對,有可能做錯,加上對應的概率

dp[i][j]=dp[i-1][j](第i題沒對)+dp[i-1][j-1](第i題對了)

確保都是對了j個題

初始化dp[0][0]=1(你乙個題都沒做當然都錯了,所以錯的概率是1)

#include

#define forr(n) for(int i=1;i<=n;i++)

using

namespace std;

const

int maxn=15;

double a[maxn]

,b[maxn]

,c[maxn]

;double dp[maxn]

[maxn]

;double q[maxn]

,p[maxn]

;int

main()

}for

(int i=

0;i<=

12;i++

)printf

("%.6f\n"

,dp[12]

[i])

;return0;

}/*0.20 0.30 0.37 0.40 0.45 0.50 0.57 0.60 0.75 0.76 0.77 0.83

0.85 0.88 0.90 0.94 0.100 0.104 0.105 0.107 0.115 0.120 0.122 0.125

0.128 0.130 0.134 0.140 0.149 0.150 0.152 0.155 0.170 0.183 0.203 0.240

*/

牛客網 每日一題 5月27日題目精講 貨幣系統

在的國度中共有n種不同面額的貨幣,第i種貨幣的面額為a i 你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為n 面額陣列為a 1 n 的貨幣系統記作 n,a 在乙個完善的貨幣系統中,每乙個非負整數的金額x 都應該可以被表示出,即對每乙個非負整數x,都存在n個非負整數t i 滿足a i x...

牛客網 每日一題 4月14日題目精講 Xorto

傳送時間限制 c c 2秒,其他語言4秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 給定乙個長度為n的整數陣列,問有多少對互不重疊的非空區間,使得兩個區間內的數的異或和為0。輸入描述 第一行乙個數n表示陣列長度 第二行n個整數表示陣列 1 n 10...

牛客網 每日一題 5月20日題目 簡單瞎搞題

比賽鏈結 輸入描述 第一行乙個數 n。然後 n 行,每行兩個數表示 li,ri。輸出描述 輸出一行乙個數表示答案。示例1 輸入512 2334 4556 輸出 26備註 1 n li ri 100 xi的是在 li ri 中任選乙個,然後構成值,所以可以用分組揹包來做 dp i j 前i個數字能否構...