藍橋杯 ADV 123 演算法提高 概率計算

2021-10-02 09:23:04 字數 790 閱讀 6883

演算法提高 概率計算  

時間限制:1.0s   記憶體限制:256.0mb

問題描述

生成n個∈[a,b]的隨機整數,輸出它們的和為x的概率。

輸入格式

一行輸入四個整數依次為n,a,b,x,用空格分隔。

輸出格式

輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數

樣例輸入

2 1 3 4

樣例輸出

0.3333

資料規模和約定

對於50%的資料,n≤5.

對於100%的資料,n≤100,b≤100.

分析:首先我們將區間[a, b]移動至以0為左端點的區間,即[0, t],其中t = b - a,相應的,和x也修正為s = x - na。我們設

最終我們要求的就是

#include int main()

; scanf("%d %d %d %d", &n, &a, &b, &x);

t = b - a;

sum = x - n * a;

for (int s = 0; s <= t; ++s)

f[1][s] = 1.0 / (t + 1);

for (int i = 2; i <= n; ++i)}}

printf("%.4lf", f[n][sum]);

return 0;

}

藍橋杯演算法提高 概率計算(概率dp)

問題描述 生成n個 a,b 的隨機整數,輸出它們的和為x的概率。輸入格式 一行輸入四個整數依次為n,a,b,x,用空格分隔。輸出格式 輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數 樣例輸入 2 1 3 4 樣例輸出 0.3333 資料規模和約定 對於50 的資料,n 5.對於100 的資...

藍橋杯 ADV 131演算法提高 選擇排序

問題描述 排序,顧名思義,是將若干個元素按其大小關係排出乙個順序。形式化描述如下 有n個元素a 1 a 2 a n 從小到大排序就是將它們排成乙個新順序a i 1 i k 為這個新順序。選擇排序的思想極其簡單,每一步都把乙個最小元素放到前面,如果有多個相等的最小元素,選擇排位較考前的放到當前頭部。還...

藍橋杯 ADV 20 演算法提高 交換Easy

問題描述 給定n個整數組成的序列,每次交換當前第x個與第y個整數,要求輸出最終的序列。輸入格式 第一行為序列的大小n 1 n 1000 和操作個數m 1 m 1000 第二行包含n個數字,表示初始序列。接下來m行,每行兩個整數x,y 1 x,y n 表示要交換的兩個整數。在一次交換中,如果x和y相等...