1. 程式人生 > >數學期望--luogu1291百事世界盃之旅

數學期望--luogu1291百事世界盃之旅

純純的數學期望

解題思路大概有兩種

第一種:
這裡寫圖片描述

第二種:
這裡寫圖片描述

但兩種方法最後都是一個公式:
n*(1/1+1/2+···+1/n)

然後注意一下題目要求的複雜的輸出格式和各種細節什麼的

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define LL long long
using namespace std;
int n,num,knum;
LL fz,fm=1,z;

inline LL gcd(LL x,LL y){
    if
(y==0) return x; return gcd(y,x%y); } inline int s(LL x){ int c=0; while(x>0){ x/=10; c++; } return c; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ LL d=gcd(fm,i); fz=fz*(i/d)+n*fm/d; fm=i/d*fm; LL r=gcd(fz,fm); fz/=r; fm/=r; } if
(fz>=fm){ z=fz/fm; fz=fz-z*fm; } if(fz==0) printf("%lld",z); else{ num=s(fm); knum=s(z); for(int i=1;i<=knum;i++) printf(" "); printf("%lld\n%lld",fz,z); for(int i=1;i<=num;i++) printf("-"); printf("\n"); for(int
i=1;i<=knum;i++) printf(" "); printf("%lld",fm); } return 0; }