Mondriaan's Dream Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 783    Accepted Submission(s): 506 Problem Description Squares and rectangles fascinated the famous Dutch painter Piet Mondri…
Saving Tang Monk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 941    Accepted Submission(s): 352 Problem Description <Journey to the West>(also <Monkey>) is one of the Four Great Clas…
http://acm.hdu.edu.cn/showproblem.php?pid=4057 Problem Description Dr. X is a biologist, who likes rabbits very much and can do everything for them. 2012 is coming, and Dr. X wants to take some rabbits to Noah's Ark, or there are no rabbits any more.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1400 题目意思:给出一个h * w的 大 矩形,需要用 1 * 2 的砖块去填充这个大矩形,问填充的方案数是多少. 这题参考这里的: http://www.informatik.uni-ulm.de/acm/Locals/2000/solution/dream.c 把每一列的方格压缩为二进制编码,搜索上一列到当前列的状态转化是否能够成功.对于每一个位置,有3种放置方法:竖直.水平.不放 对每个方格,…
HDU - 1400 思路: 轮廓线dp入门题 #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL long long //#define mp make_pair #define pb push_back #define ls rt<<1, l, m #define rs rt<<1|1, m+1…
状压DP Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 9938 Accepted: 5750 Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series…
题目:id=2411" target="_blank">poj 2411 Mondriaan's Dream 题意:给出一个n*m的矩阵,让你用1*2的矩阵铺满,然后问你最多由多少种不同的方案. 分析:这是一个比較经典的题目.网上各种牛B写法一大堆.题解也是 我们能够定义状态:dp[i][st]:在第 i 行状态为 st 的时候的最慷慨案数. 然后转移方程:dp[i][st] = sum (dp[i-1][ss]) 即全部的当前行都是由上一行合法的状态转移而来. 而状态…
题目大意 给定一个N*M大小的地板,要求你用1*2大小的砖块把地板铺满,问你有多少种方案? 题解 刚开始时看的是挑战程序设计竞赛上的关于铺砖块问题的讲解,研究一两天楞是没明白它代码是怎么写的,智商捉急,上面是用逐格进行转移的,据说神马插头DP...坑爹啊...然后果断放弃研究了...我们还是逐行的进行转移,这样比较好理解,方程表示为:dp[i][j]+=dp[i-1][k](能够从上一行的状态k转移到当前状态j).我们需要枚举出符合要求的状态j和k,如果第i-1行p列没有放,那么第i行的p列肯定…
链接:http://poj.org/problem?id=2411 题意:题目描写叙述:用1*2 的矩形通过组合拼成大矩形.求拼成指定的大矩形有几种拼法. 參考博客:http://blog.csdn.net/shiwei408/article/details/8821853 思路:我看了上面的博客,想了非常久才明确是怎样处理状态的. 因为是1 * 2,所以能够通过相邻两行的转化关系来推导. 两行铺不铺砖能够用二进制来表示,可是假设暴力枚举,大概有2^10 * 2 ^ 10 次那么多状态(尽管当中…
题目:在m*n的地板上铺上同样的1*2的地板砖,问有多少种铺法. 分析:dp,组合,计数.经典dp问题,状态压缩. 状态:设f(i,j)为前i-1行铺满,第i行铺的状态的位表示为j时的铺砖种类数: 转移:由于仅仅能横铺或者竖铺.那么一个砖块铺之前的状态仅仅有两种: 且假设当前竖放会对下一行产生影响,建立相邻两行状态相应关系. 这里利用dfs找到全部f(i.j)的上一行的全部前置状态f(i-1,k)加和就可以. f(i.j)= sum(f(i-1,k)){ 当中,f(i-1,k)能够产生f(i.j…