题目大意:给一个正整数N,每次可以在不超过N的素数中随机选择一个P,如果P是N的约数,则把N变成N/p,否则N不变,问平均情况下需要多少次随机选择,才能把N变成1?

分析:根据数学期望的线性和全期望公式可以为每个状态列出一个方程,例如: f(x)=1+f(6)*1/3+f(3)*1/3+f(2)*1/3

等式右边的最前面的“1”是指第一次转移,而后面的几项是后续的转移,用全期望公式展开,一般地,设不超过x的素数有p个,其中有g个是x的因子,则

f(x)=1+f(x)*(1-g/p)+Σf(x/y)/p

边界f(1)=0。移项后整理得

f(x)=(Σf(x/y)+p)/g

因为x/y<x,可以用记忆化搜索的方式计算f(x)。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; const int Max=1000005;
int prime[100000],Num;
bool flag[Max],vis[Max];
double f[Max];void Init()
{int i,j;Num=0;for(i=2;i<Max;i++){if(flag[i]) prime[Num++]=i;for(j=0;j<Num && i*prime[j]<Max;j++){flag[i*prime[j]]=false;if(i%prime[j]==0) break;}}
}double dp(int x)
{if(x==1) return 0.0;if(vis[x]) return f[x];vis[x]=true;double sum=0;int p=0,g=0;for(int i=0;i<Num && prime[i]<=x;i++){p++;if(x%prime[i]==0){g++;sum+=dp(x/prime[i]);}}sum=(sum+p)/g;return f[x]=sum;
}int main()
{memset(flag,true,sizeof(flag));memset(vis,false,sizeof(vis));memset(f,0.0,sizeof(f));Init();int t,i,n;scanf("%d",&t);for(i=1;i<=t;i++){scanf("%d",&n);printf("Case %d: %.10lf\n",i,dp(n));}return 0;
}

转载于:https://www.cnblogs.com/xiong-/p/3259559.html

uva 11762 数学期望+记忆化搜索相关推荐

  1. UVA - 10118Free Candies(记忆化搜索)

    题目:UVA - 10118Free Candies(记忆化搜索) 题目大意:给你四堆糖果,每个糖果都有颜色.每次你都只能拿任意一堆最上面的糖果,放到自己的篮子里.如果有两个糖果颜色相同的话,就可以将 ...

  2. uva 10118 - Free Candies(记忆化搜索)

    题目大意:10118 - Free Candies 题目大意:有4堆糖果, 每堆糖果有n颗糖果,然后给出每颗糖果的类型1~20,然后只有取走当前堆的前面一颗糖果后才可以取后面的糖果, 然后小伙伴有一个 ...

  3. uva 11600 - Masud Rana(记忆化搜索)

    题目链接:uva 11600 - Masud Rana 题目大意:给出n和m,表示说有n座城市,每两座城市间有一条路,每条路上都有怪物,现在有m条路上没有怪物,给出没有怪物的路.现在任选一座城市移过去 ...

  4. UVA - 10118 Free Candies 记忆化搜索经典

    思路:d[a][b][c][d]表示从已经第一个篮子取了a颗糖,第二个取了b颗糖,第三个取了c颗糖,第四个取了d颗糖最多还能够获得多少糖果.首先明白一个问题:如果能分别取a,b,c,d个,不论如何取, ...

  5. UVA - 10118 Free Candies 记忆化搜索

    题目链接:UVA - 10118 题目是PDF就不贴了,大意就是有四堆糖果,每堆有n个,有个人有个能盛五个糖的篮子,每次可以任选一堆糖,取最上面的那个放到篮子里,如果篮子里有两个颜色相同的,就可以把这 ...

  6. BZOJ1415 [Noi2005]聪聪和可可 【SPFA + 期望dp记忆化搜索】

    题目 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...

  7. BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp

    题目描述 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...

  8. 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)

    1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1640  Solved: 962 Description ...

  9. 【UVA 437】The Tower of Babylon(记忆化搜索写法)

    [题目链接]:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

最新文章

  1. Python常用6个技术网站汇总分享!
  2. Windows环境下如何配置wamp的虚拟域名
  3. java替换数组中的元素_如何使用Java 8流快速替换列表中的元素
  4. cbitmap 从内存中加载jpg_Pytorch数据加载的分析
  5. 2021年第一篇原创——Spring核心初探~
  6. python 广告分析算法_[Python]研究广告渠道的特征数据与结果数据的相关性, 并对渠道作出评分模型...
  7. 我写的这些opensource项目
  8. 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
  9. android 插件开发 过时,Android Sutdio ( Intelij ) 插件开发
  10. duilib开发(七):复杂控件介绍
  11. 手游加速器代理改全局
  12. 委外采购订单 Subcontract PO
  13. Opencv图像处理之平滑(Smoothing)模糊(Blurring)操作
  14. Elasticsearch Index按日期切割并使用ILM Rollover
  15. iOS15可以多开APP?其实是专注模式的功能
  16. android移动支付——银联支付
  17. CSRF跨站请求伪造 | 总结记录
  18. UE5 官方案例Lyra 全特性详解 9.蓝图消息系统
  19. 一、ECMAScript 6/7/8简介
  20. QTreeView使用总结--序

热门文章

  1. B2C网站转化率优化
  2. 用U盘安装一个Linux系统
  3. 分区起始位置参数溢出_IIS6.0缓冲区溢出漏洞深度分析(CVE-2017-7269)
  4. 移动超级sim卡 无法下载卡_共迎未来无限可能!5G超级SIM卡亮相2019中国移动全球合作伙伴大会...
  5. 网站锁定php文件命令,PHP文件的锁定机制
  6. 技术篇-符号制作-线符号制作
  7. Cocos Creator 你不知道的细节
  8. 学java web需要学php吗_学JAVA WEB要先学什么
  9. 如何卸载mysql5.6.28_如何完全删除MySQL以进行全新安装
  10. java代码块是什么_Java代码块