Lightoj 1038 - Race to 1 Again (概率DP)
2015-11-10 18:19
507 查看
题目链接:
Lightoj 1038 - Race to 1 Again
题目描述:
给出一个数D,每次可以选择数D的一个因子,用数D除上这个因子得到一个新的数D,为数D变为1的操作次数的期望为多少?
解题思路:
概率DP咯,对于只知道期望是:E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn)的窝,拿这个题目没有一点办法。然后看了讨论版,发现总会有一些神人存在。
求操作次数的期望时,先设定第i个因子给期望的贡献为Ti,那么有:E = (T1 + T2 + T3 + ...... + Tn) / n;
根据期望的定理:从当前位置移动到目的地的平均步数。所以可得到:E50 = (E1+1)/6 + (E2+1)/6 + (E5+1)/6 + (E10+1)/6 + (E25+1)/6 + (E50+1)/6;
E1 == 0,然后先后依次递推就好啦。
Lightoj 1038 - Race to 1 Again
题目描述:
给出一个数D,每次可以选择数D的一个因子,用数D除上这个因子得到一个新的数D,为数D变为1的操作次数的期望为多少?
解题思路:
概率DP咯,对于只知道期望是:E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn)的窝,拿这个题目没有一点办法。然后看了讨论版,发现总会有一些神人存在。
求操作次数的期望时,先设定第i个因子给期望的贡献为Ti,那么有:E = (T1 + T2 + T3 + ...... + Tn) / n;
根据期望的定理:从当前位置移动到目的地的平均步数。所以可得到:E50 = (E1+1)/6 + (E2+1)/6 + (E5+1)/6 + (E10+1)/6 + (E25+1)/6 + (E50+1)/6;
E1 == 0,然后先后依次递推就好啦。
#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long LL; const int maxn = 100010; const int INF = 0x3f3f3f3f; double dp[maxn]; int main () { int T; scanf ("%d", &T); memset (dp, 0, sizeof(dp)); for (int i=2; i<maxn; i++) { double num, ans; num = -1; ans = 0; int nu = (int)sqrt (i); for (int j=1; j<=nu; j++) { if (i%j == 0) { num ++; ans += 1 + dp[j]; if (j != i/j) { num ++; ans += 1 + dp[i/j]; } } dp[i] = ans / num; } } for (int t=1; t<=T; t++) { int n; scanf ("%d", &n); printf ("Case %d: %lf\n", t, dp ); } return 0; }
相关文章推荐
- 人工智能-8-puzzle爬山法(最陡上升,首项选择),随即重新启动法
- 人工智能-八皇后爬山法(最陡上升,首项选择),随即重新启动法
- SVN commit:remains in tree-conflict错误的解决办法
- keychain中我的证书与证书, p12与pem, apns, 推送
- 辛星浅析rails server监听机器外部机器无法访问的问题
- inheritPrototypeChain.js
- Failed to connect to the configuration database(Sharepoint 2013配置向导失败)
- AIDL的简单运用实现
- Hackshanghai 黑马
- LeetCodeOJ_217_Contains Duplicate
- HDU 1022 Train Problem I
- * daemon not running. starting it now * ADB server didn't ACK * failed to start daemon *
- augustus, gene prediction, trainning
- 简单几何(数学公式+凸包) UVA 11168 Airport
- A System for Rapid, Automatic Shader Level-of-Detail
- 着色器的细节层次技术 Shader Level of Detail
- 开源IDS系列--snorby 2.6.2 undefined method `run_daily_report' for Event:Class (NoMethodError)
- 关于 音频播放器 MediaRecorder(10402): start failed: -22的问题
- RAID 5
- LightOJ 1038 - Race to 1 Again(dp)