给你n*2这么大的巧克力 问你有多少种分发,这道提想暴力都困难,先想到一中递推关系,先定义dp[i][j][z],i表示第i列,j表示i列内分成j部分,z表示第i列的两块巧克力处于分开的状态还是和并的状态!!

如图 也就是说如果已经是第i列,则如果添加第i+1列则有三种情况,第一种是还是j部分,也就是不加部分,第二种是加一部分,j+1,第三种是加两部分,j+2,

第一种情况是dp[i][j][1]=dp[i-1][j][0]*2+dp[i-1][j][1] ;   dp[i][j][0]=dp[i-1][j][0];  如图所示

第二种情况是dp[i][j][1]=dp[i-1][j-1][0]+dp[i-1][j-1][1];     dp[i][j][0]=dp[i-1][j-1][1]+dp[i-1][j-1][1]+2*dp[i-1][j-1][0]; 如图所示

第三种情况是dp[i][j][0]=dp[i-1][j-2][1]+dp[i-1][j-2][0]; 如图所示

然后将所有情况加到一起!!!!代码如下

#include<iostream>
#include<cstdio>
using namespace std;
int dp[1005][2005][3]={0};
int main()
{int n,x,y;dp[1][1][1]=1;dp[1][2][0]=1;//dp[2][1][1]=1;dp[2]for(int i=2;i<=1002;i++){for(int j=1;j<=i*2;j++){dp[i][j][1]=(2*dp[i-1][j][0]+dp[i-1][j][1]+dp[i-1][j-1][0]+dp[i-1][j-1][1])%100000007;dp[i][j][0]=(dp[i-1][j][0]+2*dp[i-1][j-1][1]+2*dp[i-1][j-1][0]+dp[i-1][j-2][0]+dp[i-1][j-2][1])%100000007;}}scanf("%d",&n);while(n--){scanf("%d%d",&x,&y);printf("%d\n",(dp[x][y][1]+dp[x][y][0])%100000007);}return 0;
}

hdu 4301 Divide Chocolate 动态规划 递推 多校联合赛第二题相关推荐

  1. HDU 4301 Divide Chocolate

    这个题在暑假集训的时候做组队训练赛的时候做过,当时状态方程是我推出来的,但是WA了10+次吧.但是这次写,还是WA了很多次. 所以总结一下,DP的话,能用递推写还是尽量用递推写吧,记忆化写的话可能会出 ...

  2. 矩阵压缩降维动态规划递推【P1719 最大加权矩形】

    矩阵压缩&降维&动态规划&递推[P1719 最大加权矩形] 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要 ...

  3. hdu 1133 Buy the Ticket(递推+精度精算)

    做这道题之前可以先做:hdu 1267(递推方法和这道题是一样的知识没有精度计算)这是我的博客链接接:http://www.cnblogs.com/jiangjing/archive/2013/01/ ...

  4. P1541 乌龟棋 题解(洛谷,动态规划递推)

    题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...

  5. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)

    题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...

  6. HDU 5459 Jesus Is Here (递推,组合数学)

    有点麻烦的递推,递推的原则:向小的问题方向分解,注意边界. 字符串的递推式为 定义f为Si中的总方案数 首先可以得到 fi=fi-1+fi-2+组合(si-2,si-1) 然后考虑Si-2和Si-1之 ...

  7. hdu 2046 骨牌铺方格 递推求解

    骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. 数塔(hdoj 2084,动态规划递推)

    在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目 ...

  9. HDU - 6185 Covering(暴搜+递推+矩阵快速幂/杜教BM)

    题目链接:点击查看 题目大意:规定宽度为4,给定长度为n,求用1*2和2*1的瓷砖,将其完全铺满能有多少种方法. 分析:自从学会了矩阵快速幂之后,看到1e18的数据量都会下意识的往递推上面想,但是以前 ...

  10. 338 比特位计数(动态规划-递推)

    1. 问题描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] ...

最新文章

  1. HTTP协议通信原理 (资源)
  2. MySQL中的联合索引学习教程
  3. java异常库,java中的异常详解
  4. P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles(记忆化搜索)--- 89分
  5. 玩深度学习选哪块英伟达 GPU?有性价比排名还不够!
  6. 初学者|一文读懂命名实体识别
  7. AIX系统 topas查看系统各项指标性能
  8. 基于仿真软件multisim14的多路抢答器电路设计
  9. Sobel边缘检测 - 梯度算子介绍
  10. ACM的奇计淫巧_输入挂
  11. linux虚拟内存满了怎么办,解决linux虚拟内存不够用的方法
  12. 计算机网络_选择题(一)
  13. vue IconPark 图标 的使用
  14. 简单的骨骼动画、骨骼动画理论
  15. 软件行业薪酬待遇调查:涨薪不给力致员工跳槽
  16. 关于解决webdriver更新后pycharm仍然报错版本不对的问题
  17. 哈佛分析框架国内外文献综述
  18. oracle的存量,请教一个物料库存量查询的问题, 请进。
  19. 系统设计中的非功能性需求
  20. python技术应用工程师证书查询_工信部高级软件工程师证书查询

热门文章

  1. 6个强大的AngularJS扩展应用
  2. How to convert any valid date string to a DateTime.
  3. 我的each方法——JavaScript Array
  4. 死锁问题------------------------INSERT ... ON DUPLICATE KEY UPDATE*(转)
  5. sql 查询 当不想查出记录时候采用的方法
  6. 清北学堂2018年1月省选强化班模拟考试1
  7. python日期,时间函数
  8. 基于visual Studio2013解决面试题之1401冒泡排序
  9. C#使用带参数的存储过程
  10. 解决:System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)....