hdoj 3750 Guess Game 【数学之二分】

题意:用二分法找出数学期望。

策略,二分。

求数学期望有两种方法,一:求出每一个数的概率,再与数相乘,最后把所有的乘积相加就好了。

二:数学期望总是与平均数相等,所以可以当做求平均数。(简单方便)

代码:

#include <stdio.h>
#include <string.h>
int sum;
void bi_sear(int n){
	sum = 0;
	int temp, i, left, right, mid;
	for(i = 1; i <= n; i ++){
		temp = 0;
		left = 1; right = n;
		while(1){
			++temp;
			mid = (left+right)/2;
			if(mid == i){
				sum+=temp;
				break;
			}
			else if(mid < i) left = mid+1;
			else right = mid-1;
		}
	}
}
int main(){
	int n;
	while(scanf("%d", &n) == 1){
		bi_sear(n);
		printf("%.2lf\n", (sum*1.0)/n);
	}
	return 0;
} 

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3750

时间: 2024-08-06 03:46:28

hdoj 3750 Guess Game 【数学之二分】的相关文章

hdoj 4004 The Frog&#39;s Games(二分)

The Frog's Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 5676    Accepted Submission(s): 2732 Problem Description The annual Games in frogs' kingdom started again. The most famous game i

poj 1905 Expanding Rods (数学 计算方法 二分)

题目链接 题意:将长度为L的棒子卡在墙壁之间.现在因为某种原因,木棒变长了,因为还在墙壁之间,所以弯成了一个弧度,现在求的是弧的最高处与木棒原先的地方的最大距离. 分析: 下面的分析是网上别人的分析: 设弦长为L0(即原长),弧长为L1=(1+n*C)*l0,目标值为h,半径为R,弧所对圆心角为2θ(弧度制).可以得到以下方程组:圆的弧长公式:L1=2θR三角函数公式:L0=2*R*sinθ,变换得θ=arcsin(L0/(2*R))勾股定理:R^2=(R-h)^2+(0.5*L0)^2,变换得

hdu4430_Yukari&#39;s Birthday(数学放缩+二分)

/////////////////////////////////////////////////////////////////////////////////////////////////////// 作者:tt2767 声明:本文遵循以下协议自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 查看本文更新与讨论请点击:http://blog.csdn.net/tt2767 链接被删请百度: CSDN tt2767 ///////////////

hdoj 2063 过山车 【二分匹配之匈牙利算法】

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11520    Accepted Submission(s): 5072 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做pa

Codeforces Round #470 (Div 2) B 数学 C 二分+树状数组 D 字典树

Codeforces Round #470 B. Primal Sport 数学题,对 x2 和 x1 分解质因子即可. #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a; i<=b; ++i) #define per(i,b,a) for (int i=b;

Really Big Numbers CodeForces - 817C (数学规律+二分)

C. Really Big Numbers time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ivan likes to learn different things about numbers, but he is especially interested in really big numbers. Ivan thinks

一元三次方程求解(数学、二分)

https://www.luogu.com.cn/problem/P1024 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程. 给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1.要求三个实根. Input 四个实数:a,b,c,d Output 由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位 Sample Input 1 -5 -4

poj 1905 Expanding Rods(木杆的膨胀)【数学计算+二分枚举】

Expanding Rods Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13516   Accepted: 3484 Description When a thin rod of length L is heated n degrees, it expands to a new length L'=(1+n*C)*L, where C is the coefficient of heat expansion. Whe

hdu5646数学构造+二分

/* 满足n>=(k+1)*k/2的整数n必定满足 a+(a+1)+...+(a+k-1)<=n<=(a+1)+(a+2)+...+(a+k) 只要在[a,a+k]中减掉一个数字ai,就有n=sum(a,a+k)-ai;且其乘积能达到最大 那么二分先找到a,如果n=sum(a,a+k-1),那么已经是答案了,否则减去那个ai即可 */ #include<bits/stdc++.h> #define mod 1000000007 #define ll long long usi