演算法提高 概率計算
時間限制: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相等...