小s在玩乙個自閉的遊戲。
有乙個骰子,這個骰子有\(m\)個面分別寫著 \(1\cdots m\)
並且投擲時每面朝上的概率相同。
現在,小s投了這個骰子\(n\)次,並且告訴小t點數\(v\)至少出現了一次。
小t需要猜測乙個正整數\(sum\),表示她猜測的這\(n\)次骰子的點數之和是多少。
現在,他想要知道玩家的正確率有多少呢?
一行四個正整數,分別表示\(n,m,v,sum\)。
一行乙個實數,表示猜對的概率。你的答案被認為是正確的,當且僅當絕對或相對精度誤差\(\le 10^\)。
樣例一input
2 6 6 12
output0.09090909
樣例二
input
2 3 2 4
output0.20000000
對於\(10\%\) 的資料,滿足 \(1 \le n \le 1\)。
對於\(40\%\) 的資料,滿足 \(1 \le n,m \le 20\)。
對於\(100\%\) 的資料 ,滿足 \(1 \le n,m \le 50\) ,\(1\le v\le m\),\(1\le sum\le n\times m\)。
時間限制:1s
空間限制:128mb
題意理解
有\(n\)個點,每個點的取值範圍是\([1,n]\),已知在這\(n\)個點中,至少有乙個點的值為\(v\),將這個\(n\)個點的和累加,得到值\(x\)
問:當\(x=sum\)的時候的取數方案數占總合法取數方案數的比例?
\(40pts\)思路
我們可以使用暴力搜尋,算出每一種方案數,然後再統計合法方案。
**略\(100pts\)思路
我們觀察這道題目,發現以下幾種性質。
題目並不關心我們的具體方案,只需要方案數(屬性為統計)
至少有乙個數是\(v\) (限制條件)
前面取什麼數字,和後面取什麼數字並沒有任何影響。(無後效性)
那麼上面這些性質,就可以保證,這道題目可以使用動態規劃演算法。
我們接著討論,如何描述這個狀態。
我們發現,這道題目具有明顯的線性性質
我們可以把,每一次甩骰子,作為我們的階段。
\[f[i] \quad 表示此時選到了第i個數
\]接著題目關心,我們這些數的和。
\[f[i][k] \quad 表示此時選到了第i個數,這些數的和是k
\]接著題目的限制條件是,這些數中是否至少有乙個數是\(v\)
\[f[i][k][0/1] \quad 表示此時選到了第i個數,這些數的和是k \\\\
0表示沒有乙個v,1表示至少有乙個v
\]那麼狀態轉移方程是什麼呢?自然就是我們的揹包動態規劃的模樣了。
假如說,此時我們第\(i\)個數,他的值是\(j\)
f[i][k][0]+=f[i-1][k-j][0]
//到目前都沒有出現v,那麼推來的狀態,也不可以出現v
if (j!=v)//當前選擇元素不是v
f[i][k][1]+=f[i-1][k-j][0]
//現在已經出現v了,而本次沒有選擇v,那麼推來的狀態,必須出現過v
if (j==v)
f[i][k][1]+=f[i-1][k-j][0]+f[i-1][k-j][1];
//因為本次選擇了v,之前是否選擇v沒有限制
**解析#include using namespace std;
const int n=52;
int n,m,v,sum;
double f[n][n*n][2];
inline void init()
double ans=0;
for(int j=1; j<=n*m; j++)
ans+=f[n][j][1];//合法方案,要求是必須選擇v的
printf("%.8lf\n",f[n][sum][1]/ans);//保證精度
}signed main()
A 自閉的序列
給乙個長度為 n 的非負整數序列 a 求乙個a的長度在 l,r 之間的連續子串行,並且他們所有元素的平均值最大。你只要輸出這個最大值就可以了。第一行包含三個整數 n,l,r 接下來一行 n 個數,表示序列a。包括一行乙個實數表示答案,保留四位小數。樣例一input3 2 3 6 2 8output5...
問題 F 超超的自閉意思
時間限制 1 sec 記憶體限制 128 mb 提交 80 解決 10 提交 狀態 命題人 jsu admin 題目描述 質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。回文數定義為在正整數中,從左到右,從右到左讀都相同的數字。沒有前導零的十進位制 現在 z n 表示不大於n的質數個...
吉首 超超的自閉意思 素篩 暴力
時間限制 1 sec 記憶體限制 128 mb 質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。回文數定義為在正整數中,從左到右,從右到左讀都相同的數字。沒有前導零的十進位制 現在 z n 表示不大於n的質數個數,h n 表示不大於n的回文數個數。給定兩個數b,a。求最大n,滿足b ...