LightOJ 1038 Race to 1 Again(概率期望DP)
来源:互联网 发布:mysql 组合索引 顺序 编辑:程序博客网 时间:2024/05/16 11:30
题意
给出一个数字n,我们可以选择1~n中可以被n整除的数字,然后用n出得到一个新的数字
n1 ;然后再找所有n1 的因子,用n1 除,直到得到1;问除的次数的期望值。
思路
对于一个数n,我们设dp[i]为i变到1的期望,我们可以根据期望从后往前推,则dp[i]=(dp[1]+dp[
c1 ]+…+dp[i]+num)/num。对于这个值我们进行扫一遍找因子然后dfs下去就行了,记得要记忆化,还有,对于1和n要特殊处理。
Code
#pragma GCC optimize(3)#include<bits/stdc++.h>using namespace std;typedef long long ll;inline void readInt(int &x) { x=0;int f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); x*=f;}inline void readLong(ll &x) { x=0;int f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); x*=f;}/*================Header Template==============*/int T,n;double f[100010];inline double dfs(int x) { if(f[x]!=-1.0) return f[x]; double ans=0,cnt=2; for(int i=2;i*i<=x;i++) { if(x%i==0) { cnt++; ans+=dfs(x/i); if(i*i!=x) { ans+=dfs(i); cnt++; } } } ans+=cnt; ans/=(cnt-1); return f[x]=ans;}int main() { readInt(T); for(int ca=1;ca<=T;ca++) { readInt(n); for(int i=1;i<=n;i++) f[i]=-1; f[1]=0; printf("Case %d: %.6lf\n",ca,dfs(n)); } return 0;}
阅读全文
0 0
- 期望概率dp lightoj 1038 Race to 1 Again
- LightOJ 1038 Race to 1 again 期望+概率dp
- LightOJ 1038 Race to 1 Again(概率期望DP)
- LightOJ 1038 Race to 1 Again(概率期望)
- 【LightOJ 1038】Race to 1 Again(概率DP求期望)
- LightOJ 1038 Race to 1 Again 期望 记忆化dp
- LightOJ 1038 - Race to 1 Again (期望dp)
- LightOJ 1038 - Race to 1 Again(期望DP)
- lightoj 1038-Race to 1 Again 期望类DP
- 【概率DP】 LightOJ 1038 Race to 1 Again
- lightoj 1038 - Race to 1 Again 【概率dp】
- LightOJ 1038 Race to 1 Again【概率DP】
- LightOJ-1038-Race to 1 Again(概率dp)
- LightOJ 1038 Race to 1 Again [概率dp]
- LightOJ 1038 - Race to 1 Again 【DP】
- LightOJ 1038 Race to 1 Again (约数+期望)
- LightOJ - 1038 Race to 1 Again 递推+期望
- light oj 1038 - Race to 1 Again(概率dp求期望 记忆化搜索)
- java 支付宝 第三方即时到账支付 接口
- 自定义迷宫
- std::list 的使用
- TabLayout
- Java HashMap拓容死循环
- LightOJ 1038 Race to 1 Again(概率期望DP)
- Java代码中执行存储过程和函数
- 基于python的selenium自动化测试环境搭建
- 动态规划问题3-矩阵连乘问题
- leetcode 73
- ISAP算法
- URAL 1141(扩展欧几里德+欧拉函数)
- 数据结构实验之链表四:有序链表的归并
- Android上的Notification