自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Relocation poj 2923

题目大意:给你一些物品。每个物品有相应的重量。给你两辆载重不一定相同的车。问你最少要多少趟才能把所有物品运完。思路:状态压缩dp。二进制表示物品状态。0表示还没运走。1表示已经运走了。那么就可以枚举出两辆车一趟可一运出的状态。由于物品是一趟一趟运出来的。所以就可以由一个状态通过两辆车一趟的状态转移到另一个状态。dp[i]=MIN(dp[k]+1)。k可以由两车一趟转移到i。详细

2015-08-19 21:53:53 341

转载 POJ 动态规划题目列表

声明:1.这份列表当然不是我原创的,从文库里下载了一份,放到这里便于自己浏览和查找题目。※最近更新:Poj斜率优化题目1180,2018,3709 列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 14

2015-08-19 20:08:50 259

转载 ACM_阶段性总结 ACM_动态规划(DP)

这短时间看了论文《背包九讲》,看到背包问题解法中的优美之处也看到背包问题在现实中的应用,总结出一句话:背包问题值得一看。    背包问题可以概括为这样的模型:有若干种选择,每种选择有一定的代价和价值,做某些选择会得到特定的状态,问我们在约定的条件下怎么得到特定的状态?这里的状态可以是代价和或者价值和或者由其他这两者组合而来的状态。这类问题需要枚举每种状态,但是可以通过动态规划减少枚举的次数,提

2015-08-19 16:44:40 533

原创 HDU2639 01背包 第K优决策

求第K优解首先给我启发是 求第k优解,只需在原来01背包的问题上加上一维,表示第k优解,其实转态转移不变,还是第i个物品选与不选,该开始始终初始化不好。。。。。出现问题。但我发现有位大刘避免了复杂的初始化,而是在求d【i】【j】中的k时,巧妙的把原来的转态合并。这不免是个好方法,没必要刚开始就十全十美,只需我们在过程中处理一下,同样可得到我们所需的结果。转  :http://blo

2015-08-19 15:07:33 442

转载 2015 Multi-University Training Contest 9 hdu 5396 Expression

题意:一个表达式,加不同的括号得到不同的计算顺序,只要有一个计算顺序不同这两个表达式就是不同的。求所有表达式的和。区间dp +排列组合一开始我就知道大概可以用区间dp解决,开个二维记录区间[l,r]的所有方案的总和,然后枚举最后一次操作的符号,把每个区间分为两半,因为左边区间的总和可能有几种情况相加而得到a1,a2,a3,我们把其和保存在数组d【l】【k】,k是枚举的,代表最后

2015-08-19 12:01:20 374

原创 分割问题 hdu 5050&&hdu1290

5050题意:分割问题,在给定的二维平面画n个折线,问最多多少个区间(二维)。1290题意:分割问题,在给定的三维空间用n个平面最多能组成多少个区间(三维)。2050code突破点数交点。#include#include#include#includeusing namespace std;int f[10010];int main(){ int t

2015-08-14 16:56:26 582

原创 NYOJ 1023 还是回文(DP,花最少费用形成回文串)

描述 判断回文串很简单,把字符串变成回文串也不难。现在我们增加点难度,给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费。那么,将字符串变成回文串的最小花费是多少呢?输入多组数据第一个有两个数n,m,分别表示字符的种数和字符串的长度第二行给出一串字符,接下来n行,每行有一个字符(a~z)和两个整数,分别表示添加和删除这个字符的花费所有数都不超过2000输出最

2015-08-12 17:39:12 1070

原创 codeforces 476c Dreamoon and Sums

题解:http://codeforces.com/blog/entry/14256If we fix the value of k, and let d = div(x, b), m = mod(x, b), we have :d = mkx = db + mSo we have x = mkb + m = (kb + 1) * m.And we know m woul

2015-08-10 22:09:02 432

原创 Codeforces Round #266 (Div. 2)D(DP)

题意:选择若干个不重复的区间执行+1操作,求有多少种方法使得序列都是莫名的感觉此题出的好。第一次发现可以用dp计算非常复杂的方案数,而且方案看视非常复杂。貌似该题有多种解法:copyhttp://blog.csdn.net/rowanhaoa/article/details/39343525http://blog.csdn.net/u011345136/article/detail

2015-08-07 23:25:53 294

原创 Codeforces Round #274 (Div. 2)E. Riding in a Lift

题意:假设有n层电梯,现在你在x层,第d层是神奇的一层,因为你从第x层到第y层必须满足条件|x - y| x - b|,每走一步记下y,求走k步有多少种长度为k-1不同序列。。。。过了蛮久再看此题有点陌生了。。。有些题还是需要回顾一下,不然写了相当没写。其实转态的转移题目已经说了,我们可以从当前点出发,在所有能从该点走到的点累加走到当前点的方案数,当然对于每一个当前点,我们去枚举所

2015-08-07 19:50:31 405

原创 csdn 高效 学习技能 贪心

题意:给在n*m的网格里,每行选取一个数,使得最后选取的n个数之间的差值最小。该题我一开始以为dp,但是弄了好久没有思路。后来在大神的指点下,才知道是个贪心。因为最终我们是想的到相差最小的来自不同行的数,我们可以先记录每个数出现在哪一行,然后把n*m个数排个序,然后用一个两个指针(变量head,tail)从左往右去试探所有可行的区间(tail与head之间所有数刚好在以前每一行的都有)

2015-08-07 19:05:42 281

原创 Codeforces 467C George and Job(dp)

求k个不覆盖的最大连续区间和,每个区间长度为m。刚开始我就觉得m怎么处理,果断开三维dp数组,长度,段数,每一段的长度,然后发现原来m不必放在dp数组的一个维度上,它只是我们进行dp时的一个附属信息。而且m的固定反而会使状态转移更加简单。影响决策的因素有k和区间和,所以dp[i][j]的含义就显而易见了,表示在以第i个数的位置选择了j个子序列的最大值。那么根据递推关系不难写出递

2015-08-07 15:01:16 555

原创 Codeforces Round #302 (Div. 2) C. Writing Code dp

题意大意:每个人写一行代码,会产生a个bug,给第总人数,需要写的代码总行数,及产生的总bug的最大值,每个人可以写多行代码(>=0),求总共有多少方案数(即安排每个人写的代码数的方案)。连接:http://codeforces.com/contest/544/problem/C其实是个完全背包,我就连别人的代码看了很久很久才有所觉悟,我们不难发现人数,代码数,bug数是需要我们考

2015-08-05 15:13:08 401

原创 Codeforces Round #273 (Div. 2) C - Table Decorations dp

题意:给定两种颜色的red,blue的个数方块,要求你把他们拼成如上图的图形(第一层为1个,第二层二2个,。。。第n层为n个),而且每层的颜色必须相同,你可以不适用完方块,满足图形在最高层时,最多能拼的方案数,如上图红色为4个蓝色为6个,方案数为2。其实可以知道某一个颜色可以放的个数范围从min(n)=【h*(h+1)/2 -  m】, max(n)=MAX(n,h*(h+1)/2

2015-08-03 19:09:11 360

原创 hnuoj 字典树 map c++

http://acm.hnu.cn/online/?action=problem&type=show&id=13352题意:给你两组字符串,每组有100000个,对于每一种字符串计算两组里面的较小值,然后输出所有不同字符串较小值的和。该题本是用字典树知识ac的,但我用map给糊里糊涂ac了。tree#include#include#include#include

2015-08-03 15:18:52 560

原创 dp hnuoj

题目连接:http://acm.hnu.cn/online/?action=problem&type=show&id=13345 题意:给你n个数,最多使用m个棍子,每个棍子可以放在任意两个数之间,把n个数分成m+1分,每一份的值变成该分中他们和然后各位数四舍五入,例如58变成60 53 变成50 ,求最终没分的值之和。该题想了好久没一点思路,dp太渣。。。。 ,希望快快雄起。

2015-08-03 14:05:21 557

原创 uva 11489

题目:给定一窜数字,两个人s,T两人轮流拿一个数字,s先拿,要求每次取完之后剩下的数应为3的倍数,不能取者输,如果先手胜,输出S,否则输出T思路:首先http://uva.onlinejudge.org/external/114/11489.pdfSample Input3433771Sample OutputCase 1: S

2015-08-02 16:44:41 396

原创 455A - Boredom

题意:给定ndp[i][0]表示第i个数不选,dp[i][1]表示选。最优情况一定是把所有数都用完。#include#include#include#includeusing namespace std;int a[100010];int cnt[100010];long long d[100010][5];int main(){ int i,j,k,n,m;

2015-08-02 16:21:51 1031

算法导论——acm

有助算法入门的同学,对于想在acm程序设计上有所提高的同学是必选手册 。

2014-10-10

空空如也

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

TA关注的人

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