hdu 4159 Indomie (DP,数学概率)
推出数学公式:
#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,数学概率)的更多相关文章
- HDU 5396 区间DP 数学 Expression
题意:有n个数字,n-1个运算符,每个运算符的顺序可以任意,因此一共有 (n - 1)! 种运算顺序,得到 (n - 1)! 个运算结果,然后求这些运算结果之和 MOD 1e9+7. 分析: 类比最优 ...
- hdu 4123 树形DP+RMQ
http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...
- hdu 4507 数位dp(求和,求平方和)
http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...
- hdu 3709 数字dp(小思)
http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...
- hdu 4352 数位dp + 状态压缩
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 4283 区间dp
You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化
HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...
- HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)
HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...
- HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)
HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...
随机推荐
- Object-c 语法 - 头文件引用(@class/#import/#include)
一. Objective-C 中 #import 和 #include 的区别 预编译指令 Objective-C:#import:由gcc编译器支持 C,C++:#include 在 Objecti ...
- centos6.3编译安装Apache2.4.3+PHP5.4.8+Mysql5.5.8
以虚拟机VirtualBox 版本是4.1.20(内存设置为512M,centos安装是文本模式下安装),全新以最小化包安装了32位的 CentOS6.3系统,作为本地web环境,上次讲了在windo ...
- netstat用法
netstat - 显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组. 总 netstat [address_family_options] [--tcp|-t] [--udp|-u ...
- 用Sqlplus手动创建Oracle11g数据库
用Sqlplus手动创建Oracle数据库 刚开始学习Oracle数据库,菜鸟一个,使用sqlplus创建数据库遇到了很多问题,通过不断地百度,终于创建成功了.所以顺便把整个过程中犯的一些最低级的错误 ...
- UIStepper swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- UIGestureRecongnizer 手势检测 swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- SQLite函数详解之二
sqlite3支持的数据类型: NULL.INTEGER.REAL.TEXT.BLOB 但是,sqlite3也支持如下的数据类型 smallint 16位整数 integer ...
- Convert Sorted Array to Binary Search Tree
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
- xml之Schema架构
1.什么是Schema架构 2.Schema文档结构 3.Schema元素类型 1>element元素 <!--简单数据:类型--> <xs:element name=&qu ...
- 命令行连接wifi
ubuntu没有图形界面,插入无线网卡后启动不能连接无线. 看这个帖子 http://askubuntu.com/questions/138472/how-do-i-connect-to-a-wpa- ...