LightOJ 1038-Race to 1 Again(概率dp)
题意:
给你一个数n每一步这个数可以变为他的因子,直到这个数变为1,求n变到1的期望步数。
分析:
dp[i],表示i变为1的期望步数,dp[1]=0,dp[n]是答案。
dp[i]=sum(dp[j])/tmp+1;(j是i的因子,tmp是i因子的个数
化简即可
#include <map> #include <set> #include <list> #include <cmath> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <string> #include <cctype> #include <complex> #include <cassert> #include <utility> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; typedef pair<int,int> PII; typedef long long ll; #define lson l,m,rt<<1 #define pi acos(-1.0) #define rson m+1,r,rt<<11 #define All 1,N,1 #define N 100001 #define read freopen("in.txt", "r", stdin) const ll INFll = 0x3f3f3f3f3f3f3f3fLL; const int INF= 0x7ffffff; const int mod = 1000000007; double dp[100010]; int n; void solve(){dp[1]=0.0;for(int i=2;i<N;++i){dp[i]=0.0;int tmp=1;for(int j=1;j*j<=i;++j){if(i%j==0){tmp++;dp[i]+=dp[j];if(j!=(i/j)&&j!=1){tmp++;dp[i]+=dp[i/j];}}}dp[i]+=tmp;dp[i]/=(tmp-1);} } int main() {int t,cas=0;scanf("%d",&t);solve();while(t--){scanf("%d",&n);printf("Case %d: %lf\n",++cas,dp[n]);} return 0; }
转载于:https://www.cnblogs.com/zsf123/p/4738859.html
LightOJ 1038-Race to 1 Again(概率dp)相关推荐
- LightOJ 1395 A Dangerous Maze (II) (概率dp)
题意:给出n扇门,每扇门都给出一个数x,若为正数,则表示在x时间后走出迷宫,若为负数,则表示在x时间后回到起点,你会记得最后k扇你走过的门(不会再走),求最后的期望时间. 题解:概率dp 这题的进阶版 ...
- LightOJ 1079 Just another Robbery【概率DP】
题目: As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (he wants ...
- LightOJ - 1038 Race to 1 Again 基础期望概率 dp
传送门 刚刚学习期望&概率 我们设数X的期望改变次数为P[X] 如果要求X的期望,很容易想到找x的因子; 可以得到下式 ,cnt为X因子个数,ai为X的因子 可以这么理解,当因子ai为1时, ...
- 【LightOJ - 1030】Discovering Gold(概率dp,数学期望,期望的线性性)
题干: You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the ca ...
- LightOJ 1395 A Dangerous Maze (II) 期望DP
A Dangerous Maze (II) LightOJ - 1395 这个题是 LightOJ 1027 A Dangerous Maze 基础概率DP 的加强版. 有 nnn 个门,其中有些门通 ...
- Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]
题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...
- LightOJ 1079 Just another Robbery (概率dp+背包)
题意:有n家银行,每家银行都有一定数量的钱和被抓概率,给出自己被抓概率的上限,求能获得最多的钱. 题解:概率dp+背包 用dp[]dp[]dp[]表示获得这么多钱被抓的概率.获得同等钱的概率要尽可能小 ...
- 2018.09.01 poj3071Football(概率dp+二进制找规律)
传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...
- 【原创】概率DP总结 by kuangbin
概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...
最新文章
- SAP BMBC报表不能显示批次分类视图里的特性值
- 单元测试试图告诉我们关于 Activity 的什么事情:第二部分
- 深耕“有温度”的金融服务:平安银行“健康财富节”背后的人本主义
- 很酷的一套 Flex/AIR 皮肤 (KingnareStyle)
- boost::math::bernoulli_b2n用法的测试程序
- 这才是真正的Git——Git内部原理揭秘!
- C语言课后习题(39)
- 【Elasticsearch】Elasticsearch 中增加分片数量,聚合一定会变快吗?
- gx works2 版本号_GX Works2下载 GX Works2(PLC编程软件) v1.89C 中文安装版(附序列号+安装教程) 下载-脚本之家...
- w3school和w3cschool两个网站有什么关系和区别?(转)
- Java—企业微信网页版登陆认证详解
- gre 填空64-77
- 计算机移动硬盘无法访问,移动硬盘无法访问参数不正确的解决方法
- 运行期报“#FFxxxxxx”不是属性“xxxxx”的有效值
- JS、阻止 a 标签的默认点击事件,阻止默认的所有事件
- Unet++语义分割网络(网络结构分析+代码分析)
- Nginx如何均衡负载
- Netty 4.0 实现心跳检测和断线重连
- HDFS java API操作
- 12306抢票,极限并发带来的思考
热门文章
- java calendar 时分秒_Java中Calendar类的常用方法(对时间进行计算的类)
- Python Excel到JSON的转换
- linux导出日志命令_Linux中的导出命令
- python 字符串 变量_Python检查变量是字符串
- Android Realm数据库
- node.js 创建服务器_Node.js HTTP软件包–创建HTTP服务器
- 如何在C / C ++中使用continue语句
- C++教程:C++开发语言可以做些什么?
- 人工智能发展中面临的问题有哪些?
- 开课吧Java课堂:特殊的字符串如何操作,字符串如何连接