Bzoj4192 range

积分题都不可做


本文总阅读量
Posted by yjjr's blog on March 17, 2018

标签:数论

题目

Description

Picks参加了高考。在高考体检中,学校领导为了统计学生的身高情况,在校园中随机抽取了学生进行抽样调查。由于学校的人很多,你可以认为学生的身高在一个区间I内均匀随机分布。由于单位制的不同,你可以认为区间I的宽度可以是R+上的任意实数。学校领导在整个学校中随机抽取了N个人来统计数据,并公布了这些人的身高极差X。对此,学校希望得到全校学生的身高极差,即区间I的宽度,但是学校老师的数学知识不过关,所以他 们找到了聪明的你。 一句话:已知在实数区间(0,L]中随机选取N个数,且这N个数的最大值与最小值之差恰为X。求L的期望。

Input

一行两个数N,X。其中N为整数,X为实数。

Output

输出一行一个实数,表示L的期望。若L的期望趋于无穷大,请输出-1。 当你的答案与标准答案的绝对误差不超过10^-7时,视为你的答案是正确的。

Sample Input

2 1

Sample Output

-1

HINT

\[2<=N<=10^5,1<x<=10^5\]

分析

直接搬上题解吧,太菜了看不懂不理解qwq

这里写图片描述

code

短小精悍并无什么意义的代码。。。

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define mem(x,num) memset(x,num,sizeof x)
#define reg(x) for(int i=last[x];i;i=e[i].next)
using namespace std;
inline ll read(){
	ll f=1,x=0;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
//**********head by yjjr**********

int main()
{
	int n=read();double x;cin>>x;
	if(n<=3)puts("-1");else printf("%.10lf\n",(n-1)*x/(n-3));
	return 0;
}
本文可以转载,但必须附上原文链接,否则你会终生找不到妹子!!!欢迎关注我的CSDN: ahyjjr