推出数学公式:

#include<stdio.h>
#include<string.h>
__int64 C(int m,int n)
{
__int64 tmp=;
if(m>(n-m))m=n-m;
for(int i=; i<=m; i++)
{
tmp*=(n--);
tmp/=i;
}
return tmp;
}
int main()
{
int n,s;
int i,j,k;
//printf("#%I64d\n",C(10,50));
while(scanf("%d%d",&n,&s)!=EOF)
{
double sum=,tsum;
if(s>n)
{
printf("100.00000\n");
continue;
}
if(s==)
printf("0.00000\n");
else
{
for(i=; i<=s; i++)
{
sum+=(double)C(i,n)*((__int64)<<(n-i));
if(i==s-) tsum=sum;
}
printf("%.5lf\n",100.0*tsum/sum);
}
}
return ;
}

反面推出数学公式(超__int64):

#include<stdio.h>
#include<math.h> __int64 C(int m,int n)
{
__int64 tmp=;
if(m>(n-m))m=n-m;
for(int i=;i<=m;i++)
{
tmp*=(n--);
tmp/=i;
}
return tmp;
}
__int64 Sum(int n,int s)
{
__int64 tmp=,ret=;
for(int i=;i<n-s;i++)
{
tmp+=(C(i,n)*ret);
ret*=;
}
return tmp;
}
int main()
{
int n,s;
//printf("%d",C(25,50));
while(scanf("%d%d",&n,&s)!=EOF)
{
if(n<s)
{
printf("100.00000\n");
continue;
}
if(s==)printf("0.00000\n");
else
{
//printf("%lf\n",pow(3,n));
printf("%.5lf\n",-100.0*C(s,n)*pow(,n-s)/(pow(,n)-Sum(n,s)));
}
}
return ;
}

Dp解法:

转载:

//f(a,b)=2*f(a-1,b)+f(a-1,b-1)是公式
#include<stdio.h>
double p[][],o[][],k[][];
int main()
{
int a,b,c,d;
p[][]=;p[][]=;
for(a=;a<=;a++)
{
o[a][]=;
o[][a]=;
}
for(a=;a<=;a++)
{
p[a][]=*p[a-][];
p[][a]=;
}
for(a=;a<=;a++)
for(b=;b<=;b++)
{
p[a][b]=*p[a-][b]+p[a-][b-];
}
for(a=;a<=;a++)
for(b=;b<=;b++)
{
if(b>=a)
o[a][b]=*p[a-][b-]-;
else
o[a][b]=*o[a-][b]+o[a-][b-];
}
for(a=;a<=;a++)
for(b=;b<=;b++)
{
k[a][b]=o[a][b]/p[a][b]*;
}
while(scanf("%d%d",&a,&b)!=EOF)
{
if(b>a)
printf("100.00000\n");
else
printf("%.5lf\n",k[a][b]);
}
return ;
}
#include<stdio.h>
#include<string.h>
#define MM 1000000000000000.0
double dp[][];
int main()
{
int n,s,i,j;
while(scanf("%d%d",&n,&s)!=EOF)
{
memset(dp,,sizeof(dp));
if(s==)
{
printf("0.00000\n");
continue;
}
dp[][s] = ;
dp[][s-] = ;
for(i = ; i <= n ; i++)
for(j = ; j <= s ; j++)
{
dp[i][j] = dp[i-][j]*+dp[i-][j+];
}
double ss=;
for(i = ; i <= s ; i++)
{
ss+=dp[n][i]/MM;
}
dp[n][] = dp[n][]/MM;
double x = -1.0*dp[n][]/ss;
printf("%.5lf\n",x*);
}
return ;
}

hdu 4159 Indomie (DP,数学概率)的更多相关文章

  1. HDU 5396 区间DP 数学 Expression

    题意:有n个数字,n-1个运算符,每个运算符的顺序可以任意,因此一共有 (n - 1)! 种运算顺序,得到 (n - 1)! 个运算结果,然后求这些运算结果之和 MOD 1e9+7. 分析: 类比最优 ...

  2. hdu 4123 树形DP+RMQ

    http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...

  3. hdu 4507 数位dp(求和,求平方和)

    http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...

  4. hdu 3709 数字dp(小思)

    http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...

  5. hdu 4352 数位dp + 状态压缩

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. hdu 4283 区间dp

    You Are the One Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  8. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  9. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

随机推荐

  1. Entity Framework学习笔记(三)----CRUD(2)

    请注明转载地址:http://www.cnblogs.com/arhat 昨天晚上老魏配的机器终于到了,可是拿回来之后什么都组装好了,唯独差一个非常重要的组件"电源线",老魏那个汗 ...

  2. Entity Framework学习笔记(一)

    请注明转载地址:http://www.cnblogs.com/arhat 哈哈!老魏回来了,4月份的内容开始更新了,由于3月份时间都在做项目,没有时间写了,那么4月份老魏会尽可能的多写点东西的.那么4 ...

  3. Java类初始化顺序问题

    main -> (静态变量.静态代码块) ->main函数体 -> (类变量.初始化块.实例化引用的类) -> 构造函数 初始化块与实例化引用的类 的调用顺序 按程序的编写上下 ...

  4. [SSH服务]——SSH详解、常用的远程连接工具

    在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Serv ...

  5. CentOS安装vsftpd

    版本:vsftpd-3.0.2-9.el7.x86_64(CentOS是64位的). 1.安装vsftpd yum -y install vsftpd 2.配置vsftpd 修改配置前把原始配置文件备 ...

  6. “来用”alpha版使用说明书

    1引言 1 .1编写目的 针对我们发布的alpha版本做出安装和使用说明,使参与内测的人员及用户了解软件的使用方法和相关内容. 1 .2参考资料 <c#程序设计基础>,赵敏主编,2011, ...

  7. 团队开发-极速蜗牛-NABC模型

    特点:益智,操作简单. N(need):手机小游戏,可以让大家打发无聊的时间,比如:排队打饭,课间休息,等公交等地铁,拿出手机玩玩小游戏. A(approach):基于光的反射原理,编写的小游戏. B ...

  8. Careercup - Microsoft面试题 - 6282862240202752

    2014-05-11 03:56 题目链接 原题: Given an integer array. Perform circular right shift by n. Give the best s ...

  9. 安装Netsharp演示插件

    阅读本文请先阅读Netsharp下载及环境搭建 Netsharp提供了DEMO程序,DEMO完成的功能是Netsharp文章系列中的Netsharp快速入门系列中介绍的功能,DEMO是以Netshar ...

  10. windows环境下svn同步web文件[转]

    windows环境下svn同步web文件 SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统. 如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发.测试更加便捷.利用S ...