BZOJ2134 單選錯位

2022-05-19 20:09:09 字數 591 閱讀 8276

給出n道題目,每道題目有a[i]個選項

有乙個人知道所有題目的正確選項,但是他把答案全部寫在了第i+1的題目上(第n個題目的答案寫在了第1個題目上)

求出這個人做對題目的期望

期望dp,有一點點水

首先對於a[i-1]和a[i]而言,假設要答對第i道題的話,那麼概率就是min(a[i-1],a[i])/(a[i-1]*a[i])(a[i-1]*a[i]為方案總數)

但是a[i-1]*a[i]會暴int,所以我們簡化為1.0/max(a[t],a[i]),然後沒了

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;int a[11000000

];double f[11000000

];int

main()

printf(

"%.3lf\n

",f[n]);

return0;

}

BZOJ2134 單選錯位

傳送門 題解 非常簡單。第i 1道題作對的概率,是 1 第i道題選擇了1 a i 1 中的乙個選項,並且作對了i 1題。2 若ai a i 1 第i道題選擇了a i 1 1 ai中的乙個選項並做對了i 1題。顯然這部分概率為0。如果ai a i 1 那麼 第i道題選擇了1 a i 1 中的乙個選項 ...

BZOJ 2134 單選錯位 期望

第i個填到第i 1個的期望得分顯然是1 max a i a i 1 根據期望的線性性,我們只需將每個選項的期望值累加即可.include using namespace std typedef long long ll const int maxn 10000009 int a maxn int m...

bzoj2134 單選錯位 期望

題目描述 輸入n很大,為了避免讀入耗時太多,輸入檔案只有5個整數引數n,a,b,c,a1,由上交的程式產生數列a。下面給出pascal c c 的讀入語句和產生序列的語句 預設從標準輸入讀入 for pascal readln n,a,b,c,q 1 for i 2 to n do q i int6...