hdu 4301 Divide Chocolate 动态规划 递推 多校联合赛第二题
给你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 动态规划 递推 多校联合赛第二题相关推荐
- HDU 4301 Divide Chocolate
这个题在暑假集训的时候做组队训练赛的时候做过,当时状态方程是我推出来的,但是WA了10+次吧.但是这次写,还是WA了很多次. 所以总结一下,DP的话,能用递推写还是尽量用递推写吧,记忆化写的话可能会出 ...
- 矩阵压缩降维动态规划递推【P1719 最大加权矩形】
矩阵压缩&降维&动态规划&递推[P1719 最大加权矩形] 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要 ...
- hdu 1133 Buy the Ticket(递推+精度精算)
做这道题之前可以先做:hdu 1267(递推方法和这道题是一样的知识没有精度计算)这是我的博客链接接:http://www.cnblogs.com/jiangjing/archive/2013/01/ ...
- P1541 乌龟棋 题解(洛谷,动态规划递推)
题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...
- P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)
题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...
- HDU 5459 Jesus Is Here (递推,组合数学)
有点麻烦的递推,递推的原则:向小的问题方向分解,注意边界. 字符串的递推式为 定义f为Si中的总方案数 首先可以得到 fi=fi-1+fi-2+组合(si-2,si-1) 然后考虑Si-2和Si-1之 ...
- hdu 2046 骨牌铺方格 递推求解
骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 数塔(hdoj 2084,动态规划递推)
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目 ...
- HDU - 6185 Covering(暴搜+递推+矩阵快速幂/杜教BM)
题目链接:点击查看 题目大意:规定宽度为4,给定长度为n,求用1*2和2*1的瓷砖,将其完全铺满能有多少种方法. 分析:自从学会了矩阵快速幂之后,看到1e18的数据量都会下意识的往递推上面想,但是以前 ...
- 338 比特位计数(动态规划-递推)
1. 问题描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] ...
最新文章
- HTTP协议通信原理 (资源)
- MySQL中的联合索引学习教程
- java异常库,java中的异常详解
- P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles(记忆化搜索)--- 89分
- 玩深度学习选哪块英伟达 GPU?有性价比排名还不够!
- 初学者|一文读懂命名实体识别
- AIX系统 topas查看系统各项指标性能
- 基于仿真软件multisim14的多路抢答器电路设计
- Sobel边缘检测 - 梯度算子介绍
- ACM的奇计淫巧_输入挂
- linux虚拟内存满了怎么办,解决linux虚拟内存不够用的方法
- 计算机网络_选择题(一)
- vue IconPark 图标 的使用
- 简单的骨骼动画、骨骼动画理论
- 软件行业薪酬待遇调查:涨薪不给力致员工跳槽
- 关于解决webdriver更新后pycharm仍然报错版本不对的问题
- 哈佛分析框架国内外文献综述
- oracle的存量,请教一个物料库存量查询的问题, 请进。
- 系统设计中的非功能性需求
- python技术应用工程师证书查询_工信部高级软件工程师证书查询
热门文章
- 6个强大的AngularJS扩展应用
- How to convert any valid date string to a DateTime.
- 我的each方法——JavaScript Array
- 死锁问题------------------------INSERT ... ON DUPLICATE KEY UPDATE*(转)
- sql 查询 当不想查出记录时候采用的方法
- 清北学堂2018年1月省选强化班模拟考试1
- python日期,时间函数
- 基于visual Studio2013解决面试题之1401冒泡排序
- C#使用带参数的存储过程
- 解决:System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)....