hunnu--11547--你的组合数学学得怎样?
| 你的组合数学学得怎样? |
| Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB |
| Total submit users: 151, Accepted users: 119 |
| Problem 11547 : No special judgement |
| Problem description |
| 小明和小红总是喜欢在一起玩。一天。他们又在一起愉快的玩耍了一个下午。到了吃晚饭的时间,他们决定用抛硬币的方法来决定谁请吃晚餐。 规则非常easy,他们抛一枚均匀的硬币N次。假设出现连续两次或很多其它正面朝上的情况。那么就是小红请,否则就是小明请。 如今小明想知道。抛N次的全部情况下,会有多少次不出现连续两次正面或很多其它正面朝上的情况 |
| Input |
| 有多组測试数据,请处理到文件结束。 每组測试数据仅包括一个数N(1 <= N <= 1000)。表示抛掷的次数。 |
| Output |
| 每组数据输出一行,格式为Case #k: Ans, k从1開始, Ans表示答案. 因为答案可能会非常大,输出Ans % (10^9 + 7)就可以. |
| Sample Input |
1 |
| Sample Output |
Case #1: 2 |
| Problem Source |
| HUNNU Contest |
解析:比較简单的DP。从左向右一个一个连续着放,dp[X][Y]表示到第X个硬币的时候Y状态的方案数,Y=0表示x左边那个不是正面的,Y=1表示x左边那个是正面
假设左边不是正面,那么当前放正面的就把方案数加到Y=1里面,放反面的就加到Y=0
假设是正面。那么当前放正面就不成立了,所以不用加。放反面就加到Y=0里面去
递推公式:
dp[i][0]= ( dp[i-1][0] + dp[i-1][1] )%mod;
dp[i][1]= dp[i-1][0] %mod;
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define mod 1000000007
using namespace std;
int main()
{
int n,i,j,k,l=1;
int dp[1111][2];
while(cin>>n)
{
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(i=1;i<=n;i++)//从1到n位置一个一个位置去考虑硬币的正反
{
dp[i][0]=(dp[i-1][0]+dp[i-1][1])%mod;
dp[i][1]=dp[i-1][0]%mod;
}
cout<<"Case #"<<l++<<": "<<(dp[n][0]+dp[n][1])%mod<<endl;
}
return 0;
}
hunnu--11547--你的组合数学学得怎样?的更多相关文章
- hunnu---11547 你的组合数学学得如何?
解析:比较简单的DP,从左向右一个一个连续着放,dp[X][Y]表示到第X个硬币的时候Y状态的方案数,Y=0表示x左边那个不是正面的,Y=1表示x左边那个是正面 如果左边不是正面,那么当前放正面的就把 ...
- LCM性质 + 组合数 - HDU 5407 CRB and Candies
CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...
- 计算一维组合数的java实现
背景很简单,就是从给定的m个不同的元素中选出n个,输出所有的组合情况! 例如:从1到m的自然数中,选择n(n<=m)个数,有多少种选择的组合,将其输出! 本方案的代码实现逻辑是比较成熟的方案: ...
- Noip2016提高组 组合数问题problem
Day2 T1 题目大意 告诉你组合数公式,其中n!=1*2*3*4*5*...*n:意思是从n个物体取出m个物体的方案数 现给定n.m.k,问在所有i(1<=i<=n),所有j(1< ...
- C++单元测试 之 gtest -- 组合数计算.
本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...
- NOIP2011多项式系数[快速幂|组合数|逆元]
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- AC日记——组合数问题 落谷 P2822 noip2016day2T1
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...
- 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exgcd(l ...
- 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理
4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 95 Solved: 33[Submit][Statu ...
随机推荐
- Model層資料驗證
概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验证. 本节我们就学习如何使用 System.Co ...
- 远程调试Hadoop
远程调试对应用程序开发十分有用,那如何调试Hadoop源码?这里介绍如何用IDE远程调试Hadoop源码.本文以IntelliJ IDEA作为IDE,以调试Jobhistory WEB UI代码为例进 ...
- js动态给table添加/删除tr的方法
js动态给table添加/删除tr的方法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ...
- 新手MySQL工程师必备命令速查手册
MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程.触发器.事务处理等.而这两个方面又可以细分如下: 1.MySQL常用语句 ...
- NAND FLASH驱动程序
NAND FLASH是一个存储芯片那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线, 怎么 ...
- Android开发:keytool' 不是内部或外部命令 也不是可运行的程序
今天在更改keystore密码的时候,发生了这个问题:keytool' 不是内部或外部命令 也不是可运行的程序. 本来以为很简单觉得的问题,在网上搜索了一大堆答案,都不是我想要的,故在此记录下我的解决 ...
- shadowshocks下载地址
https://github.com/shadowsocks/shadowsocks-windows/releases
- 使用conda 对gcc进行升级 (sonicparanoid)
由于要是用python 3.6版本的一个包sonicparanoid,但是系统的gcc比较老,所以先用conda创建python环境,在该环境下尽心gcc的安装和升级 conda create --n ...
- IIS安全加固
1 删除IIS默认站点 把IIS默认安装的站点删除或禁用掉. 2 禁用不必要的Web服务扩展 打开IIS 管理器,检查是否有不必要的“Web服务扩展”,如果有则禁用掉.如下图所示: 3 IIS访问权限 ...
- Python+Django+SAE系列教程12-----配置MySQL数据库
由于SAE上支持的是Mysql,首先我们要在本地配置一个Mysql的环境 ,我在网上找到MySQL-python-1.2.4b4.win32-py2.7.exe,并双击 安装 选择典型安装 安装结束后 ...