每一次每一年,数学是心中的痛,不管怎么说,数学不差,但是却不愿意花时间,我在想,也许以前我努力一点,那一年没颓废,或许我是一个不一样的我,但是,人生,总会经历很多,一个人,经历过才会成熟,也许这辈子智商有限,只能停留在某一个水平,我想我也在很认真的做一件事,但事实就是这么残酷,你辛苦一个学期,别人只要最后一个作弊,成绩就能超过你,过后,还能说自己没作弊,也许这就是人生,也许这就是社会,但是不管怎样,我要做好自己,不羡慕不嫉妒,得道成仙,努力搞完这个ACM吧,希望自己能获得一定的成就,这些天刷了一些概率期望的水题,因为以前从来没接触过,上次湘潭果断被坑,立志不怕数学,简单的入个门,就要认真进阶!
uva--1639
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#define siz 200005
#define L long
#define LL long long
using namespace std;
int n,D;
double p;
L double lnarr[2*siz];
void getln(){
lnarr[1]=0.0;
for(int i=2;i<2*siz;i++){
lnarr[i]=lnarr[i-1]+log(i);
}
}
L double Vi(int c,int x){
return lnarr[c]-lnarr[x]-lnarr[c-x];
}
void solve(){
double ans=0.0;
for(int i=1;i<=n;i++){
L double c=Vi(2*n-i,n);
L double v1=c+(n+1)*log(p)+(n-i)*log(1-p);
L double v2=c+(n+1)*log(1-p)+(n-i)*log(p);
//ans+=i*(exp(v1)+exp(v2));
ans+=1.0*i*(exp(Vi(2*n-i,n)+(n+1)*log(p)+(n-i)*log(1-p))+exp(Vi(2*n-i,n)+(n+1)*log(1-p)+(n-i)*log(p)));
}
printf("%.6f\n",ans);
}
int main()
{
int cas=0;
getln();
// cout<<lnarr[1]<<endl;
while(~scanf("%d %lf",&n,&p)){
// cout<<p<<endl;
printf("Case %d: ",++cas);
solve();
}
return 0;
}
uva--10288
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#define LL long long
using namespace std;
LL gcd(LL int a,LL int b){
if(b==0) return a;
else return gcd(b,a%b);
}
int n;
int main()
{
int ans;
while(~scanf("%d",&n)){
LL int son=1,mon=1;
for(int i=2;i<=n;i++){
LL int x=mon*i;
LL y1=son*i,y2=mon;
LL y=y1+y2;
//cout<<y<<" "<<x<<endl;
LL gc=gcd(x,y);
//cout<<gc<<endl;
x=x/gc;
y=y/gc;
son=y,mon=x;
}
//cout<<son<<" "<<mon<<endl;
LL gc=gcd(n,mon);
mon=mon/gc;
n=n/gc;
son=son*n;
LL pp=son/mon;
LL qq=son%mon;
LL jishu1=0;
LL M=mon;
//cout<<jishu1<<" "<<M<<" "<<mon<<endl;
while(M){
++jishu1;
M=M/10;
}
//cout<<jishu1<<endl;
M=pp;
int js=0;
while(M){
++js;
M=M/10;
}
if(qq==0){
printf("%lld\n",pp);
}
else{
if(pp==0){
printf("%lld\n",qq);
for(int j=0;j<jishu1;j++){
printf("-");
}
printf("\n");
printf("%lld\n",mon);
}
else{
for(int j=0;j<=js;j++){
printf(" ");
}
printf("%lld\n",qq);
printf("%lld ",pp);
for(int j=0;j<jishu1;j++){
printf("-");
}
printf("\n");
for(int j=0;j<=js;j++){
printf(" ");
}
printf("%lld\n",mon);
}
}
}
return 0;
}