LightOJ - 1038 Race to 1 Again

给一个数字,等概率选择一个这个数字的除数,然后将这个数字除以这个除数,直到这个数字等于1,求这个数字等于1的期望次数。

我们用  表示这个数字的期望次数,对于每一个数字 i ,有

,化简后得 

所以枚举每一个数字,暴力跑一下他的因数

 

#include <bits/stdc++.h>
#define ll long long
#define sc scanf
#define pr printf
using namespace std;
double dp[100005];
void init()
{
	for (int i = 2; i <= 100000; i++)
	{
		int cnt = 0;
		dp[i] += dp[1];
		cnt += 2;
		for (int j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
			{
				dp[i] += dp[j];
				cnt++;
				if (j != i / j)
				{
					dp[i] += dp[i / j];
					cnt++;
				}
			}
		}
		dp[i] = (dp[i] + cnt) / (cnt - 1);
	}
}
int main()
{
	init();
	int T, cas = 1;
	sc("%d", &T);
	while (T--)
	{
		int n;
		sc("%d", &n);
		printf("Case %d: %.9lf\n", cas++, dp[n]);
	}
}

 

全部评论

相关推荐

04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务