uva 11762 数学期望+记忆化搜索
题目大意:给一个正整数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 数学期望+记忆化搜索相关推荐
- UVA - 10118Free Candies(记忆化搜索)
题目:UVA - 10118Free Candies(记忆化搜索) 题目大意:给你四堆糖果,每个糖果都有颜色.每次你都只能拿任意一堆最上面的糖果,放到自己的篮子里.如果有两个糖果颜色相同的话,就可以将 ...
- uva 10118 - Free Candies(记忆化搜索)
题目大意:10118 - Free Candies 题目大意:有4堆糖果, 每堆糖果有n颗糖果,然后给出每颗糖果的类型1~20,然后只有取走当前堆的前面一颗糖果后才可以取后面的糖果, 然后小伙伴有一个 ...
- uva 11600 - Masud Rana(记忆化搜索)
题目链接:uva 11600 - Masud Rana 题目大意:给出n和m,表示说有n座城市,每两座城市间有一条路,每条路上都有怪物,现在有m条路上没有怪物,给出没有怪物的路.现在任选一座城市移过去 ...
- UVA - 10118 Free Candies 记忆化搜索经典
思路:d[a][b][c][d]表示从已经第一个篮子取了a颗糖,第二个取了b颗糖,第三个取了c颗糖,第四个取了d颗糖最多还能够获得多少糖果.首先明白一个问题:如果能分别取a,b,c,d个,不论如何取, ...
- UVA - 10118 Free Candies 记忆化搜索
题目链接:UVA - 10118 题目是PDF就不贴了,大意就是有四堆糖果,每堆有n个,有个人有个能盛五个糖的篮子,每次可以任选一堆糖,取最上面的那个放到篮子里,如果篮子里有两个颜色相同的,就可以把这 ...
- BZOJ1415 [Noi2005]聪聪和可可 【SPFA + 期望dp记忆化搜索】
题目 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...
- BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp
题目描述 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...
- 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)
1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1640 Solved: 962 Description ...
- 【UVA 437】The Tower of Babylon(记忆化搜索写法)
[题目链接]:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
最新文章
- Python常用6个技术网站汇总分享!
- Windows环境下如何配置wamp的虚拟域名
- java替换数组中的元素_如何使用Java 8流快速替换列表中的元素
- cbitmap 从内存中加载jpg_Pytorch数据加载的分析
- 2021年第一篇原创——Spring核心初探~
- python 广告分析算法_[Python]研究广告渠道的特征数据与结果数据的相关性, 并对渠道作出评分模型...
- 我写的这些opensource项目
- 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
- android 插件开发 过时,Android Sutdio ( Intelij ) 插件开发
- duilib开发(七):复杂控件介绍
- 手游加速器代理改全局
- 委外采购订单 Subcontract PO
- Opencv图像处理之平滑(Smoothing)模糊(Blurring)操作
- Elasticsearch Index按日期切割并使用ILM Rollover
- iOS15可以多开APP?其实是专注模式的功能
- android移动支付——银联支付
- CSRF跨站请求伪造 | 总结记录
- UE5 官方案例Lyra 全特性详解 9.蓝图消息系统
- 一、ECMAScript 6/7/8简介
- QTreeView使用总结--序
热门文章
- B2C网站转化率优化
- 用U盘安装一个Linux系统
- 分区起始位置参数溢出_IIS6.0缓冲区溢出漏洞深度分析(CVE-2017-7269)
- 移动超级sim卡 无法下载卡_共迎未来无限可能!5G超级SIM卡亮相2019中国移动全球合作伙伴大会...
- 网站锁定php文件命令,PHP文件的锁定机制
- 技术篇-符号制作-线符号制作
- Cocos Creator 你不知道的细节
- 学java web需要学php吗_学JAVA WEB要先学什么
- 如何卸载mysql5.6.28_如何完全删除MySQL以进行全新安装
- java代码块是什么_Java代码块