
dp
文章平均质量分 75
nianiajr
http://www.liangjiarui.com/
展开
-
poj 1837-Balance
BalanceTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 8971 Accepted: 5474DescriptionGigel has a strange "balance" and he wants to poise it. Actually, t原创 2013-07-27 17:35:08 · 612 阅读 · 0 评论 -
poj1191-棋盘分割问题
这个题想了一会没什么思路,就去搜了别人的解题思路,看了好几个,感觉这个作者的处理很巧妙http://blog.youkuaiyun.com/yihuikang/article/details/7770656,看完以后自己写了一遍,其中记录棋盘和的那个二维数组真的很赞,以及后面的更新再次利用了二维数组,同时棋盘的划分也是很合理,学习了~#include#include#include#include原创 2014-01-21 00:39:33 · 880 阅读 · 0 评论 -
poj3211-01背包变形
这里要求洗衣服不能串色,同盆只能洗相同颜色的衣服,而相同颜色的衣服会有若干件,同时又是两个人一起洗,可以将这个问题转化为01背包问题,对每一种颜色的衣服进行01背包,首要问题是解决两个人同洗的问题,两个人同洗也就是2倍的速度,但一件衣服只能一个人洗,所以又不能单把同种颜色的衣服的时间折半分摊给两个人,但这里可以获得一个启示,要想节约时间,那么两个人的工作量应该接近,我们不妨这样来转化,假设某种颜色原创 2014-01-21 00:34:23 · 1102 阅读 · 0 评论 -
poj3267
采用动态规划的思想,具体代码看http://blog.youkuaiyun.com/lyy289065406/article/details/6648121很详细,越发感觉到dp的神奇啊。#include#include#include#define min(a,b)(a<b?a:b)using namespace std;int main(){ int w,l; whil原创 2014-01-17 23:14:05 · 858 阅读 · 0 评论 -
poj1276
这是一个多重背包问题,按照背包九讲上面的思想做的,最需要注意的就是体积变化那里,01背包与完全背包的差别,细微的差别却导致不同结果,不得不说背包的巧妙啊,具体看代码:#include#includeusing namespace std;int main(){ int cash,n; while(cin>>cash>>n){ int *c = n原创 2014-01-17 18:07:07 · 662 阅读 · 0 评论 -
poj2057-树状dp
第一次写树状dp,完全没什么概念,而且这题看了感觉好复杂,看了好几个人的解题报告,想了一段时间才想明白那个转移方程的含义,这几份报告都很详细,最后按http://blog.sina.com.cn/s/blog_5f5353cc0100hd08.html的思路写的,由于第一次写,所以加了很多注释,也仿照了其他博主的代码,越写越感觉到树状dp的神奇,不过要能独自相处转移方程,确实还有待提升,加油!原创 2014-01-22 18:14:43 · 858 阅读 · 0 评论 -
hdu 4722
昨天才学得数位dp,今天刚好网路热身赛遇见一个,而且还比较简单,不过傻X的把dp定义成int没找出错,跪了一小时才发现,不过不得不感叹数位dp真的太适合做类题了,很契合计算机的思想,虽然这种题找规律也可以做,不过既然是编程还是契合计算机思想比较好。1.数位dp方法:#include#include#include const int max=20;原创 2013-09-12 00:32:42 · 733 阅读 · 0 评论 -
hdu 3652 -数位dp
之前学校新生培训的时候学长挂的题,当时给了标准代码没看明白,放了半年,今天花一天总算看明白了,从这个过程也能看出这半年学习是有不少进步的,代码的理解有一定的加深,不过单看数位dp7k+那个缩减模版有的地方确实是有点丧心病狂了,所以参照了另一个注释写的比较多的博主http://blog.youkuaiyun.com/xingyeyongheng/article/details/8806414最后思路综合了下,写原创 2013-09-10 23:36:40 · 1028 阅读 · 0 评论 -
CodeForces 245H
询问在一段区间内回文串的个数,很基础的dp问题,两个状态转移方程就可以出解,不过得把到底表示的什么状态写清楚,下标不能混了。dp[i][j]表示从i到j区间内回文串的个数,palind[i][j]表示i-j子串是否是一个回文串,注意初始化的处理,这里WA好几次。#include#includeint dp[5005][5005],palind[5005][5005];char st原创 2013-09-10 23:27:32 · 821 阅读 · 0 评论 -
ZOJ 3689
这题就是很基础的背包问题,不过开始需要先排个序,用到了轮换不等式思想,把最优的顺序排出来,再根据背包进行选择最优解就好。#include#include#include#includeusing namespace std;struct work{ int t; int s;}w[3003];bool cmp(work a,work b){ retur原创 2013-09-09 17:28:27 · 679 阅读 · 0 评论 -
poj2151
学习http://user.qzone.qq.com/289065406/blog/1304863551写的很详细的报告 学会用间接的方式来转化求解概率的问题,这里是要求求解在满足每个队至少解决一道题目,并且有人完成n题的概率, 细心读题还能发现这里有一个坑,n和m可以是不同的,之前一直不知道WA了很久,后面看了别人解题博客才恍然大悟,接着分析 题目的数量为m,至少完成1题且其原创 2014-02-01 00:16:18 · 886 阅读 · 0 评论