- 博客(11)
- 收藏
- 关注
原创 poj 1651
题意:给定一个n个数的串,首尾不能删除,没删除一个数有一个代价,即与相邻两个数的乘积,求删除所有数后代价最小分析:dp(i,j)表示区间i~j删除所有数后最小代价 对于区间i~i+2有一个初始的代价,即a[i]*a[i+1]*a[i+2] 枚举区间j从i+3~n dp(i,j) = dp[i+1][j]+a[i]*a[i+1]*a[j] 删除的数为i+1,所以应是删除i
2015-10-30 21:31:25 245
原创 poj 2955【区间dp】
题意:分析一个串中,()和[]匹配的最大数目,匹配一次+2分析:dp(i,j)表示区间i~j括号匹配的最大值 i从后往前推,初始dp[i][j] = dp[i+1][j] j从i+1~len,若中间存在某个k使得str[i] 与 str[k] 匹配,dp(i,j) = max(dp(i,j),dp[i+1][k-1]+dp[k][j]+2) 这题算是区间dp的入门题了。
2015-10-30 19:50:41 357
原创 HDU 3652
题意:找出区间内数中含有13的并且能被13整除的数的个数分析:dp(i,j,k)表示i位数,余数为j;k = 0,不含13;k = 1,,不含13且末位为1;k = 2,含13
2015-10-25 20:10:59 351
转载 数位dp模版
int dfs(int i, int s, bool e) { if (i==-1) return s==target_s; if (!e && ~f[i][s]) return f[i][s]; int res = 0; int u = e?num[i]:9; for (int d = first?1:0; d <= u; ++d) res
2015-10-25 20:04:16 212
原创 hdoj_2089 【数位dp入门】
题意:就是统计区间内没有4和62的数的个数分析:dp(i,0)表示i位数不存在不吉利数的个数,dp(i,1)表示i位数不存在不吉利数并且最高位为2的个数,dp(i,2)表示i位数存在不吉利数的个数 首先对dp数组进行一个预处理,处理出i位数出现上述情况的个数,统计的时候都有统计前缀0 dp(i,0) = dp(i-1,0)*9-dp(i-1,1) 前
2015-10-25 15:18:03 298
原创 HDU 1561 树形dp+背包
分析:攻下一座城堡的前提是要先攻下它的前驱城堡,建立一个以0为根结点的树,他的权值为0 dp(i,j)表示以i为根结点去j个的最大值。 dp(i,1) = v[i] (v[i]为攻下i城堡获得的宝藏) 对与u结点取j+1个,可以转化为以孩子i为根取k个+以自己为根取j+1-k个和自己取j+1个的最大值 (为什么是j+1,因为建立了一个虚拟结点0,所
2015-10-23 21:35:05 315
原创 HDU 2196
题意:有n台电脑,他们之间连着线,之间具有权值,问每一台电脑到哪台电脑的权值最大。分析:这n台电脑的关系可以构成一棵树,问题即问到叶子结点的最远距离是多少。 设dp(i,0)表示以i为子树的最远叶子结点距离,dp(i,1)表示以i为子树的次远叶子结点距离,dp(i,2)表示tree(root)-tree(i)的最远距离+dis(root,i),root为i的父节点
2015-10-23 15:22:37 374
原创 poj2342
题意:公司开晚会,每个人都有对应的活跃度,他们都不希望自己的上司来,邀请哪些人能使活跃度最大分析:dp(i,0)表示第i个人不来 dp(i,1)表示第i个人来 dp(root,1) += dp(i,0) 上司来了,那么下属就不回来 dp(root,0) += max(dp(i,0),dp(i,1))
2015-10-22 23:44:56 789
原创 最长公共上升子序列——hdu1423 Greatest Common Increasing Subsequence
给定a,b两个序列,求两个序列的最长上升子序列长度分析:dp(j)表示b序列到达i时与a序列构成的LCIS的最优解。如果某一个时刻a[i]==b[j],那么显然,我们就应该在0到j-1中,找一个dp值最大的来更新最优解。这和求上升子序列是思想是一样的。另外,在枚举b[j]的时候,我们顺便保存一下小于a[i]的dp值最大的b[j],这样在更新的时候,我们就可以做到O(1)的复杂度,从而将整个算法
2015-10-22 23:28:30 291
原创 划分数
题意:将正整数N拆分成若干个正整数之和,有多少种不重复的拆分方案例如 5=5,5=4+1,5=3+2,5=3+1+1,5=2+2+1,5=2+1+1+1,5=1+1+1+1+1 共七种分析:dp(i,j)表示将i拆成若干个数字,最大的那个数字不超过j的方案数。 则有两种情况,第一种是最后一个数不超过j-1,此时方案数为g(i,j-1).否则最后一个数字刚好是j,此时方案数为g(i
2015-10-22 23:25:21 369
转载 Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制
2015-08-14 00:44:11 177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人