HDU ACM 1267 下沙的沙子有几粒?->DP
题意:m个H和n个D,从左開始数H的累积个数总不比D的累计数少的排列有多少种。比如,3个H和1个D共同拥有3种符合要求的排列H D H H,H H D H,H H H D。
分析:状态方程为,DP[m][n]=DP[m-1][n]+DP[m][n-1]。
另外当n=0的时候不管m怎样取值都是1。
理解:如果3个H和2个D是由2个H和2个D还有3个H一个D推来的,2个H和2个D共同拥有H D H D。H H D D两种排列,3个H和一个D总共同拥有H D H H,H H D H,H H H D三种排列,然后在H D H D,H H D D的后面加入一个H就是2中排列,在H D H H,H H D H,H H H D的后面加入一个D就有3种方案,所以总共就是5种方案。其它均为反复。
注意:m<n的话排列的情况不存在,则为0。
#include<iostream>
using namespace std; int main()
{
__int64 a[21][21];
int m,n,i,j; memset(a,0,sizeof(a));
for(i=1;i<=20;i++) //当n为0的时候不管m怎样取何值都是1
a[i][0]=1; for(i=1;i<=20;i++)
for(j=i;j<=20;j++)
a[j][i]=a[j-1][i]+a[j][i-1]; while(cin>>m>>n)
{
printf("%I64d\n",a[m][n]);
}
return 0;
}
HDU ACM 1267 下沙的沙子有几粒?->DP的更多相关文章
- hdu 1267 下沙的沙子有几粒? (递推)
下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- HDU——1267 下沙的沙子有几粒?
下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1267 下沙的沙子有几粒?
题解:利用卡特兰数的几何意义,题目就可以转化为一个棋盘格,可以向下走或是向右走,但是不可以逾越对角线,就可以了. #include <cstdio> #include <iostre ...
- HDU1267 下沙的沙子有几粒? 基础DP
题目链接 题意:给定m个H和n个D(1<=n,m<=20),问这些字母构成的序列中,对于任意位置,从左开始数H的累积个数总是不比D的累计数少的排列有多少种. 题解:二维DP,画一个正方形, ...
- hdu 1292 "下沙野骆驼"ACM夏令营 (递推)
"下沙野骆驼"ACM夏令营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- hdu acm 1028 数字拆分Ignatius and the Princess III
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- hdu1527下沙小面的(二)
B - 下沙小面的(2) Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- C - 下沙小面的(2)
C – 下沙小面的(2)Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDes ...
- 【起】ACM类下为过往所做过的部分算法题目
[起]ACM类下为过往所做过的部分算法题目 几百道题,日后细细品味.
随机推荐
- 编译v8引擎
本机环境是win7+vs2010(本来想用2012的,但是发现默认的项目是2010的) 1.首先下载V8的源码 安装好svn,并在cmd下能使用svn help: svn下载地址(安装包):http: ...
- tar.bz2解压
bzip2 -d gcc-4.1.0.tar.bz2 tar -xvf gcc-4.1.0.tar 或 tar -xvf *.tar
- eval、json.parse()的介绍和使用注意点
原文:eval.json.parse()的介绍和使用注意点 eval和json.parse的使用 eval:来源于官网 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScri ...
- 获取Enum枚举值描述的几法方法
原文:获取Enum枚举值描述的几法方法 1.定义枚举时直接用中文 由于VS对中文支持的很不错,所以很多程序员都采用了此方案. 缺点:1.不适合多语言 2.感觉不太完美,毕竟大部分程序员大部分代码都使用 ...
- Java集群--大型网站是怎样解决多用户高并发访问的
时间过得真快,再次登录博客园来写博,才发现距离上次的写博时间已经过去了一个月了,虽然是因为自己找了实习,但这也说明自己对时间的掌控能力还是没那么的强,哈哈,看来还需不断的努力啊!(这里得特别说明一下本 ...
- Thread Dump 和Java应用诊断(转)
Thread Dump 和Java应用诊断 Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力.虽然各 ...
- WPF-21:WPF实现仿安卓的图案密码键盘(初级)
希望大家有这方面好的代码给提供下,谢谢了! 想用C#做一个和手机上一样的图形密码键盘,貌似这方面资料比较少,虽然winphone手机上也有但是网上也没有这方面的代码.只好用常规的思维去实现一下,当然是 ...
- 使用Sublime Text 2编辑和运行node-webkit应用程序
开发工具目录结构 --E:\develop\ ----node-webkit-v0.9.2-win-ia32 ----Sublime Text 2.0.2 x64 为Sublime text2构建Bu ...
- Linux下的下载工具介绍----aria2
ariac 项目地址:http://aria2.sourceforge.net/ 下载地址:http://sourceforge.net/projects/aria2/files/stable/ari ...
- crontab,想说爱你不easy
悲剧的背景 跑自己主动化脚本的机器连不上toastserver了, 仅仅能自己写个脚本每天跑了. 当然要放在crontab里了. 5 3 * * * sh ~/nosecron.sh 更悲剧的结果 第 ...