西安网站制作平台,中关村手机在线官网,网页搭建流程,页面设计线稿题目网址#xff1a; http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid2sectionid3problemid9 分析#xff0c;这题其实是H和D的组合排列问题#xff0c;只不过要考虑期间累计的H和D的数量关系。 用DP来做#xff0c;可以推导出#xff1a; dp…题目网址 http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid2sectionid3problemid9 分析这题其实是H和D的组合排列问题只不过要考虑期间累计的H和D的数量关系。 用DP来做可以推导出 dp[i][j] dp[i-1][j] dp[i][j-1] dp[][]前一个表示H的数量后一个表示D的数量。 分上面那种情况是因为最后一个必然是H或者D而此时可以考虑把新加的一个放在最后因为假如加的是H如果加在[i-1][j]中加入H则最后一个依然是H或D此时如果成立那么依然属于[i-1][j]或[i][j-1]的情况。 所以推导出此递推关系。 #include iostreamusing namespace std;int main(){ __int64 d[21][21]; d[1][1] 1; d[2][1] 2; d[1][2] 0; for(int i 1; i21;i) d[i][1] i; for(int i 2;i21;i) for(int j 2;j21;j) { if(ij) d[i][j] d[i-1][j] d[i][j-1]; else d[i][j] 0; } int m,n; while(cinmn) coutd[m][n]endl; return 0;}