自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 uva10003Cutting Sticks(DP)

题目请戳这里 题目大意:给一根木棍的长度l,再给n个数c1~cn,表示要在距木棍一端长ci处切一刀,切一刀的代价是当前所切木棍长度。求最小的总代价。 题目分析:仔细一看这其实就是一个石子合并问题,只不过换了一个姿势,一个是合并,一个是切,本质还是一样的。 我将这题转化成石子合并问题dp。 木棍切n刀会产生n+1段,他的逆过程便是将n+1堆石子合并成一堆。 dp[i][j]表示从第i段

2014-01-20 23:08:07 1178

原创 uva10635 Prince and Princess(dp)

题目请戳这里 题目大意:给2个序列,求最长公共子序列。 题目分析:传统做法O(p*q),但此题p和q会很大,所以不能那样做。这题需要稍微转化一下,比较2个序列,将一个序列中的元素在另一个序列中出现的位置依次记录下来。对这个序列求一次LIS就可以了。hdu1025跟这个题其实是一个题。 详情请见代码: #include #include #include using namespace

2014-01-19 20:34:16 1295

原创 hdu1081To The Max(dp)

题目请戳这里 题目大意:给一个n*n的矩阵,矩阵每个元素为一个整数,求权值和最大的子矩阵。 题目分析:这是求最大连续子序列和的二维版本。所以我们可以先看看一维情况:求一个序列的最大连续子序列和。 很显然可以朴素O(n^2)解决这个问题,但是如果我们利用前缀和的话,可以做到O(n)。dp[i]表示前i个数最大连续子序列。那么有方程:dp[i] = max(dp[i - 1] + a[i],a[

2014-01-19 17:25:33 1183

原创 zoj3284Matrix Processing(二维树状数组)

题目请戳这里 题目大意:给一个矩阵,然后q个操作。有3种操作类型: op = 0:按行优先原则从(x1,y1)到(x2,y2)所有元素都加一个k。 op = 1:按列优先原则从(x1,y1)到(x2,y2)所有元素都加上k。 op = 2:查询(x,y)处元素值。 题目分析:矩阵不大,但是查询很多。暴力会超时。于是高兴的写了一个二维线段树,结果华丽丽的TLE了。然后又不断调整姿势,还是T

2014-01-12 16:44:33 1466

原创 zoj2617Edison(splay模拟)

题目请戳这里 题目大意:模拟一个简单的洗牌过程。C张牌,编号0~c-1,一次洗牌就是将从第p张牌开始的连续l张整体移到最前面。现在给s个操作,每个操作有r次重复洗牌动作,求洗完牌后的c张牌序列中,奇数位置的牌点数之和。 题目分析:由于只有一个操作,所以直接模拟一下就可以了。洗牌过程看起来很复杂,看穿了也就没什么了。一次操作相当于将前p张牌循环右移l的位置,重复r次,其实就是将前p张牌循环右移l

2014-01-12 00:25:54 1629 2

原创 SGU271. Book Pile(模拟)

题目请戳这里 题目大意: 一开始有n本书,书是垒起来放发,第一本在最上边。现在有m个操作,有2种操作类型:#include #include #include #include using namespace std; const int N = 100005; const int M = 40005; int n,m,k,num,top,bot,nm,dir; char name[N +

2014-01-11 19:06:31 1266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除