紫书 习题 10-14 UVa 10886(暴力+数据范围)

开始的时候一看这题感觉很难,觉得肯定有什么很快的办法

不能暴力做(受了上一题10-13的影响)

然后一看那个函数感觉无从下手。

然后看了博客发现,原来这道题就是直接暴力……

因为n的范围为10的7次方啊 ,不会超时

自己以后要注意数据范围

#include<cstdio>
#include<cmath>
#include<iostream>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;

unsigned long long seed;
long double gen()
{
	static const long double Z = ( long double )1.0 / (1LL<<32);
	seed >>= 16;
	seed &= ( 1ULL << 32 ) - 1;
	seed *= seed;
	return seed * Z;
}

const int MAXN = 11234567;
long double num[MAXN];

int main()
{
	int n, T;
	scanf("%d", &T);
	
	REP(kase, 1, T + 1)
	{
		scanf("%d%llu", &n, &seed);
		long double sum = 0, ans = 0;
		REP(i, 0, n)
		{
			num[i] = gen();
			sum += num[i];
		}
		
		sum /= n;
		REP(i, 0, n) ans += pow(sum - num[i], 2);
		printf("Case #%d: %.5Lf\n", kase, sqrt(ans / n));	
	}
	
	return 0;
}

 

转载于:https://www.cnblogs.com/sugewud/p/9819476.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值