您的位置:首页 > 编程语言

ZOJ 3415 Zhou Yu 代码 + 证明 (保证看得懂)

2010-10-09 14:00 127 查看
当时想到一种线性的方法,但是TLE,然后推了很久的公式,没有推出来。赛后看了watashi大牛的公式,终于用自己的方法推出来了。由于个人高等数学实在不怎么样,只会等比求和,等差求和。所以也只用了这两个公式而已。保证看不懂watashi大牛的那个证明的,看我这个能够看懂。

公式:





证明:下载

代码:

#include <iostream>
#include <stdio.h>
#include <iomanip>

using namespace std;

double power(double a, int b)
{
if(b == 0)
{
return 1.0;
}
if(b == 1)
{
return a;
}
double ret = power(a, b/2);
if(b & 1)
{
return ret * ret * a;
}
else
{
return ret * ret;
}
}

int main()
{
int n, m;
while(scanf("%d%d", &n, &m) != EOF)
{
if(m == 2)
{
printf("%.10lf\n", 1.0 * n * (n+1));
}
else
{
double pow = power(1.0 / (m - 1), n);
printf("%.10lf\n", 1.0 * m / (m-2) / (m-2) * (pow + 1.0 * n * (m - 2) - 1));
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐