题目链接:uva 11270 - Tiling Dominoes
题目大意:用1?2木块将给出的n?m大小的矩阵填满的方法总数。
解题思路:插头dp的裸题,dp[i][s]表示第i块位置,并且该位置对应的行数的状态为s的时候的总情况数。0表示为竖放预留留的位置,1表示填上的位置,不管是竖放还是横放。并且第一位状态用滚动数组优化空间。
#include
#include
#incl...
分类:
其他好文 时间:
2014-05-23 07:39:17
阅读次数:
194
其实我觉得这题可以用费用流的,可是光建图就超时了。。。不科学啊。。。因为边太多了,不然一定能过的,最后想啊想,还是用dp吧。。。。
居然想到一种一维dp。。。。我也不知道我怎么想的,反正就是ac了
//#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-05-22 13:20:14
阅读次数:
286
题目链接:uva 10253 - Series-Parallel Networks
题目大意:就是有n条线,通过并联或者是串联,形成一个整体,问说有n条线,可以组成多少种。
解题思路:大白书上的例题,解法还真是高端.dp[i][j]表示说每个树德叶子节点不大于i,一共有j个叶子。f[i]=dp[i-1][i],注意n为1的时候。
#include
#include
typede...
分类:
Web程序 时间:
2014-05-22 11:03:40
阅读次数:
402
题目链接:11481 - Arrange the Numbers
题意:序列1-n,进行重排,问最后前m个中有k个仍然位置不变的情况数
思路:之前写过UVA 580, n个数重排,要求每个位置都不同的情况的题目,递推式为dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2])
利用这个,这题只要:
k个位置C(m, k) * sum(C[n - m][i] (后面...
分类:
其他好文 时间:
2014-05-22 10:45:52
阅读次数:
191
题目链接:hdu 4804 Campus Design
题目大意:有1?2的木块无穷个,要求在给定的图n?m的图上,用1?2和1?1的木块铺满,图上的0表示不需要铺的位置,1表示必须要铺的位置。并且1?1的使用数量必须在c到d之间。求总方案数。
解题思路:和uva11270一样的做法,只是需要多添加一位状态来表示用掉1得个数,以及要对当前位置判断是否为可放。
#include
#i...
分类:
其他好文 时间:
2014-05-22 09:15:28
阅读次数:
201
题目链接:poj 2411 Mondriaan's Dream
题目大意:用1?2的木块填满n?m的矩阵有多少种方法。
解题思路:插头dp裸题。uva11270
#include
#include
typedef long long ll;
const int N = 13;
int n, m;
ll set, dp[N+5][(15];
void solve (int d,...
分类:
其他好文 时间:
2014-05-22 08:06:07
阅读次数:
177
数塔
Problem Description
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
Input
输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整...
分类:
其他好文 时间:
2014-05-22 06:32:17
阅读次数:
198
题目:
链接:点击打开链接
题意:
判断是否能够平分弹珠。
算法:
多重背包。
思路:
模板。。。dp[i]中i表示花费。。
代码:
#include
#include
#include
using namespace std;
int n[7];
int dp[120010];
int V;
void bag_01(int c,int w)/...
分类:
其他好文 时间:
2014-05-20 16:03:26
阅读次数:
256
题目连接:uva 1362 - Exploring Pyramids
题目大意:给出一个字符串,问有多少种多叉树德前序遍历(这里每经过一个节点,该节点的值即要被算入,回溯的也要)满足该字符串。
解题思路:dp[i][j]表示从i到j的位置可以用多少种多叉树表示。转移方程:dp[i][j]=∑k=i+2jdp[i+1][k?1]?dp[k][j]。
#include
#include...
分类:
其他好文 时间:
2014-05-20 15:32:08
阅读次数:
254
题目链接:uva 11361 - Investigating Div-Sum Property
题目大意:给出a,b,k,问说在[a,b]这个区间有多少n,满足n整除k,以及n的各个为上的数字之和也整除k。
解题思路:数位dp,dp[i][j][x]表示第i为的时候,n整除k余j,n(以及考虑到的位数)的各个位置上的数字之和整除k余x的情况总数,并且每次要计算上限的临界值。
#inc...
分类:
其他好文 时间:
2014-05-20 15:26:47
阅读次数:
215