lightoj1038】的更多相关文章

//Accepted 2860 KB 16 ms //概率 //对于n,假设n变成1的期望步数为p(n) //则p(n)=1/t*sum((1+p(d))) d|n //解得:p(n)=1/(t-1)*(t+sum(p(d))) d|n d!=n; //下面我们可以改造筛素数的方法,对于每个d,看他整除那些数 #include <cstdio> #include <cstring> #include <iostream> #include <queue> #…
给定一个数字d,随机选择一个d的约数,然后让d除以这个约数,形成新的d,不断继续这个步骤,知道d=1为止, 要我们求将d变为1的期望次数 设d1,d2...dj是除以约数后,形成的行的d,且dj==d 那么dp[i] = 1/j*dp[d1] + 1/j*dp[d2]+...+1/j*dp[dj] + 1 (j-1)/j*dp[i] = 1/j*dp[d1] + 1/j*dp[d2]+...+1/j*dp[dj-1] + 1 所以dp[i] = (1/j*dp[d1] + 1/j*dp[d2]+…
传送门:>出错啦< 题意:给你一个整数n,每一次可以随机选择一个n的因子x(包括1和它自己),让n除以x——不停重复此过程,直到n==1. 问n被除到1的期望次数. 解题思路: 今天刚学的期望Dp,这道题就算入门啦,顺带总结一下期望Dp的做题方法. 一般的,我们可以设$f[i]$表示从状态i到目标状态的期望次数.因此我们可以先确定本题的目标状态——n变为1. 因此在本题中,我们可以设$f[i]$表示$n==i$时到$n==1$的期望次数.由于目标状态本身到目标状态是根本不用变的,因此先确定$f…
题意:输入一个数N,N每次被它的任意一个因数所除 变成新的N 这样一直除下去 直到 N变为1 求变成1所期望的次数 解析: d[i] 代表从i除到1的期望步数:那么假设i一共有c个因子(包括1和本身) d[i] = ( d[1] + d[a2] + d[a3] + d[a4] ..... + d[i] + c) / c; (加c是因为每一个期望值都会加1,因为多出一步才变成它(即第一次从i到它的因子的那一步)) 把右边的dp[i] 移到左边 化简得 dp[i] =  ( d[1] + d[a2]…
https://vjudge.net/problem/LightOJ-1038 题意:给出一个数n,每次选择n的一个约数m,n=n/m,直到n=1,求次数的期望. 思路:d[i]表示将i这个数变成1的次数期望. 现在对于D来说,d[D]=1/cnt*{(d[D/1]+1)+(d[D/x1]+1)+(d[D/x2]+1)....+(D[D/D]+1)} 化简得 d[D]=1/(cnt-1)*(d[D/1]+d[D/x1]+...d[D/D]+cnt) #include<iostream> #in…
题目链接:https://vjudge.net/problem/LightOJ-1038 1038 - Race to 1 Again    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Rimi learned a new thing about integers, which is - any positive integer greater than 1 can be divided b…
前言 前两节主要针对题目分析,没时间的珂以跳过. 初步 首先举一道简单.经典的好题: [Lightoj1038]Race to 1 Again 懒得单独写,安利一下DennyQi同学的博客:https://www.cnblogs.com/qixingzhi/p/9346307.html. 很显然很多期望题的状态是和自己有关的,怎么办呢,难道不停的搜索自己? 上面的方法显然行不通,于是我们只能简单变形一下. 很容易列出方程: \[f[n]= \frac{\sum_{i=1}^{m}f[fac_n^…