首页 > 代码库 > HDU 4159 Indomie ( 组合数学 )
HDU 4159 Indomie ( 组合数学 )
HDU 4159 Indomie ( 组合数学 )
#include <cstdio>typedef __int64 LL;#define MAXN 101int n, s;LL po[ MAXN ];void init(){ po[0] = 1; for( int i = 1; i < MAXN; ++i ) po[i] = po[i-1] * 2;}double CC( int n, int m ){ double res = 1; for( int i = 0; i < m; ++i ) res *= (double)(n-i) / (i+1); return res;}int main(){ init(); while( ~scanf( "%d %d", &n, &s ) ) { if( s == 0 ) puts( "0.00000"); else if( s > n ) puts( "100.00000"); else { double res1 = 0, res2 = 0; for( int i = 0 ; i <= s; ++i ) { res1 += CC( n, i )* po[n-i]; if( i == s - 1 ) res2 = res1; } printf( "%.5lf\n", 100.0 * res2 / res1 ); } }}
HDU 4159 Indomie ( 组合数学 )
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。