环状合并石子问题。环状无非是第n个要和第1个相邻。可以复制该行石子到原来那行的右边即可达到目的。定义:dp[i][j]代表从第i堆合并至第j堆所要消耗的最小体力。转移方程:dp[i][j]=min(dp[i][k]+dp[k+1][j]+sum[i][j]);复杂度:O(n^3)。可考虑四边形优化。...
分类:
其他好文 时间:
2014-06-02 20:34:03
阅读次数:
226
显然是一个状压DP。将方格的摆放分成两种:1.水平摆放:此时所占的两个格子都记为1。2.竖直摆放:此时底下那个格子记为1,上面那个记为0。这样的话,每行都会有一个状态表示。定义:dp[i][s]表示考虑已经填到第i行,这一行状态为s的方法数转移:dp[i][s]
= dp[i][s]+dp[i-1]...
分类:
其他好文 时间:
2014-06-02 20:32:51
阅读次数:
172
状压DP定义:dp[i][j]为状态为j时,第i行符合条件的状态数转移方程:dp[i][j]
+= dp[i-1][t]
//t为上一行状态,与当前行不冲突。从第一行开始向下枚举,每次枚举当前行的状态和上一行的状态,如果不相邻或者未被地雷占据并且两行的关系是合法的,则加上方法数。最后res
= S....
分类:
其他好文 时间:
2014-06-02 20:09:23
阅读次数:
151
单调队列优化DP。定义dp[i][j]表示第i天手中有j股股票时,获得的最多钱数。转移方程有:1.当天不买也不卖:
dp[i][j]=dp[i-1][j];2.当天买了j-k股: dp[i][j]=max(dp[r][k]+(j-k)*Ap[i]);
(r=1,所以i>w+1时才能转移,这是i#in...
分类:
其他好文 时间:
2014-06-02 20:03:15
阅读次数:
191
LRJ黑书上的例题。化简均方差公式:均值的平方一定,所以只需让矩形的总分的平方和最小即可。定义:dp[k][x1][y1][x2][y2],以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标的矩形,切割K次以后得到的k+1块举行的总分平方和的最小值转移方程:(分成横割和竖割)dp[k][x1]...
分类:
其他好文 时间:
2014-06-02 20:02:34
阅读次数:
243
题意:即求给定n个数字(a1,a2,……an),不改变序列,分成M份,使每一份和的乘积最大。思路:dp[i][j]表示把前i个数字,分成j份所能得到的最大乘积。转移方程:dp[i][j]
= max{ dp[k][i-1]*sum(k+1,j) } 其中显然j#include #include #i...
分类:
其他好文 时间:
2014-06-02 19:58:45
阅读次数:
242
UVA 10844 - Bloques
题目链接
题意:给定n个数字,问这n个数字能分成子集分成有几种分法
思路:一开始先想了个状态,dp[i][j]表示放i个数字,分成j个集合的方案,那么转移为,从dp[i - 1][j - 1]在多一个集合,和从dp[i - 1][j]有j个位置放,那么转移方程为dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]...
分类:
其他好文 时间:
2014-06-02 05:29:09
阅读次数:
254
题意:给出两个01字符串s1,s2.每次改变s1上m个位置的字符。问k步之后使得s1变为s2的方法有多少种。
解法:DP,关键是状态的设计。考虑还是唯一性和可传递性。dp[i][j]表示第i步后有j个不同到目标的走法数。记忆化搜索dp[0][dif](dif表示初始时不同字符的个数)。转移时候枚举选择情况即可。
代码:/*****************************...
分类:
其他好文 时间:
2014-06-02 04:58:01
阅读次数:
216
操作系统环境:windows2008EnterpriseR2SP1验证群集配置时未发现任何的错误。但在创建故障转移群集时,出现超时错误的现象:“创建群集时出错。创建群集“xxx”时出错。由于超时时间已过,该操作返回。”。尝试单独选择一台服务器群集创建成功,但添加第二节点时,一直卡在“正..
分类:
Windows程序 时间:
2014-06-01 16:26:06
阅读次数:
1949
本文主要讲解用动态规划解决矩阵链乘的问题,我也利用公式编辑器编辑出了状态转移方程,也给出了代码,大家可以参考。
分类:
编程语言 时间:
2014-06-01 11:26:16
阅读次数:
277