Coin Toss
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31329#problem/G
使用二维数组f[ i ] [ j ] 表示前i 位中有j个连续的硬币。
当第i个硬币等于j+1时,那么当j 个硬币恰在第i个硬币前面时,那么则有j + 1个,所以f[i ][ j ] 需要减去1个;当i >j + 1时,那么在第j + 1 个之前的数必须是T;所以需要减去f[ i - ( j +1 ) - 1 );
import java.math.BigInteger ;
import java.util.Scanner; public class Main
{
public static void main( String[ ] args )
{
Scanner cin = new Scanner( System.in ) ;
BigInteger[][] f = new BigInteger[ 105 ][ 105 ] ;
for( int i = 0 ; i <= 100 ; ++i )
{
f[ 0 ][ i ] = new BigInteger( "1" ) ;
}
f[ 1 ][ 0 ] = new BigInteger( "1" ) ;
for( int i = 1 ; i <= 100 ; ++i )
{
f[ 1 ][ i ] = new BigInteger( "2" ) ;
}
for( int i = 2 ; i <= 100 ; ++i )
{
for( int j = 0 ; j <= 100 ; ++j )
{
f[ i ][ j ] = f[ i - 1 ][ j ].multiply( BigInteger.valueOf( 2 ) ) ;
if( i == j + 1 )
{
f[ i ][ j ] = f[ i ][ j ].add( BigInteger.valueOf( -1 ) ) ;
}
else if( i > j + 1 )
{
f[ i ][ j ] = f[ i ][ j ].add( f[ i - j - 2 ][ j ].negate() ) ;
}
}
}
while( cin.hasNext())
{
int n = cin.nextInt();
int k = cin.nextInt();
System.out.println( f[ n ][ n ].add( f[ n ][ k - 1 ].negate()) ) ;
}
}
}
Coin Toss的更多相关文章
- UVA 10328 - Coin Toss dp+大数
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- UVA 10328 Coin Toss
Coin Toss Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVA. Original ID: ...
- Coin Toss(uva 10328,动态规划递推,限制条件,至少转至多,高精度)
有n张牌,求出至少有k张牌连续是正面的排列的种数.(1=<k<=n<=100) Toss is an important part of any event. When everyt ...
- POJ 3440 Coin Toss(概率)
题目链接 概率问题,像是概率论上学的均匀分布,是不是呢,忘了... 概率同面积有关系,我写的各种搓,然后此题格式十分变态,=前有的时候俩空格,有的时候一个空格.代码各种搓. #include < ...
- UVa 10328 - Coin Toss (递推)
题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上的情况有多少种. 原题中问出现连续至少k个H的情况,很难下手.我们可以试着将问题转化一下. 设dp[i][j]表示抛掷i个硬币出现连续至多j个H ...
- POJ 3440 Coin Toss(求概率)
题目链接 题意 :把硬币往棋盘上扔,分别求出硬币占1,2,3,4个格子的时候的概率. 思路 : 求出公式输出,不过要注意输出格式,我还因为输入的时候用了int类型错了好几次..... #include ...
- poj 3440 Coin Toss 概率问题
这题主要是推导数学公式!!! 将概率问题转化为圆心所在的面积! 代码如下: #include<iostream> #include<stdio.h> #include<a ...
- VMware coding Challenge: Coin Toss Betting
static int CoinTossEndAmount(int betAmount, String coinTossResults) { if (betAmount <=0 || coinTo ...
- UVa 10328 Coin Toss(Java大数+递推)
https://vjudge.net/problem/UVA-10328 题意: 有H和T两个字符,现在要排成n位的字符串,求至少有k个字符连续的方案数. 思路:这道题目和ZOJ3747是差不多的,具 ...
随机推荐
- Maven Jrebel 多模块热部署方案
近期在构建maven多模块项目时,发现web module依赖的其它模块,每次都要clean install成一个jar包,然后运行web module才能加载. 本生jrebel是配置在了web m ...
- Web调试利器fiddler使用
fiddler官网:http://fiddler2.com/ http://wenku.baidu.com/view/053e79d776a20029bd642dc1 http://www.cnblo ...
- MFC不使用对话框资源模版创建对话框
在MFC程序中使用对话框时首先在资源模版里创建对话框资源,然后DoModal()或者CReate显示出模式对话框或者非模式对话框,这样创建出的对话框移植性差,从一个工程移动到另一个工程比较麻烦. 在M ...
- HNOI2016 网络
题目 朴素算法 在线. 树链剖分套一个堆. 时间复杂度\(O(n (\log n)^3)\). 分治 朴素算法中,套一个堆是为了支持删除操作. 采用以下分治可以避免删除操作: 每次对时间\([l,r] ...
- Embedded Linux Primer----嵌入式Linux基础教程--2.4节--嵌入式Linux发行版
嵌入式Linux发行版 究竟什么是Linux发行版?在Linux内核引导之后,它期望找到并挂载根文件系统.当一个匹配的根文件系统已经挂载上,启动脚本开始运行大量程序和系统要求的工具.这些程序经常调用其 ...
- DataTable的属性与使用方式
一.DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例. DataTable(string t ...
- Markdown 11 种基础语法
现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式: 第一种: ...
- CodeForces 189A 166E 【DP ·水】
非常感谢 Potaty 大大的援助使得我最后A出了这两题DP ================================== 189A : 求切分后的ribbon最多的数目,不过要求切分后只能存 ...
- 04-C语言数据类型
目录: 一. 注释 二.数据类型 三. 输入函数scanf 四.转义符\ 五.char数据范围 六.int整形 七.float与double 八.进制转换 回到顶部 一. 注释 1 解释代码的意义,注 ...
- 计算ptd
因为公司的IC扫描sensor的频率常常和adapter中的noise频率重叠,导致IC接收到的数据出错.所以我们经常会用示波器看adapter的Noise,再用傅里叶变换找到相应应该回避的频段,包括 ...