动态规划(DP)
文章平均质量分 76
yaolongdeng
来自数学系的我
展开
-
HDU2571
昨晚早早跪了,身体太累了,根本吃不消CF了,早上起来继续刷一题!Then,写写python,shell,基本又一天。题目还是中文题~!思路:一开始看起来这题目有dfs,但这个矩阵貌似太大了,dfs不敢碰,还是老老实实dp吧,我的做法是,先刷掉最第一列,因为第一列只能从左上往下,then,第i行第j列应该就是dp[i][j]=max(dp[i-1][j],dp[i][k] )+dp[i]原创 2014-05-31 08:46:35 · 1082 阅读 · 0 评论 -
HDU1506 ( Largest Rectangle in a Histogram ) [dp]
最近情绪太不稳定了,可能是因为在找实习这个过程碰壁了吧,第一次面试就跪了,可能是我面的是一个新公司,制度不完善,我感觉整个面试过程完全不沾编程,我面试的还是软件开发~后来我同学面试的时候,说是有一道数学题了,最后都已经签了,orz...其他同学都陆续签了,有签了知乎,有签了猎豹的,有签了阿里的,我还在想着打比赛,作为一个快大四的人,我还想着打比赛,甚至我连队友都快没了~但是我还想坚持!到现在,我基原创 2014-06-01 10:12:12 · 1429 阅读 · 0 评论 -
hdu1257(dp基础)
最近早上要上课的时候都只能做一些 dp基础了。不过今天感觉还是十分失败的,我决定明天我要在脖子上搭一条湿毛巾,so hot!题目很简单,读起来就很经典,可是我想了蛮久的..四十分钟最后才AC,真心弱。大概意思是:中文题哦!!还要解释吗?我的dp做法很暴力啊,我个人认为!!!!46MS,看来数据还是很正常的。/*************************************原创 2014-05-28 12:12:45 · 1104 阅读 · 0 评论 -
zoj1276矩阵连乘dp
很经典的入门dp/*******************************************************************************//* OS : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux * Compiler : g++ (GCC)原创 2014-03-23 23:28:11 · 834 阅读 · 0 评论 -
poj3264(RMQ果题)
我的实习就这么定下来了,下周一就出发了,估计是做数据挖掘的项目了,往研发努力这么久,最后第一份实习竟然是数据挖掘,出自数学系的感觉总是怪怪的,不过也是很高兴的。不过我所属部门还是研发部,用的是python,作为一个刚刚会写基本的程序的菜鸟,知道两个月后会怎么样呢?希望公司有大神赐教。实习后估计会更累,但是我还是会每天刷题,尽早记录!另外值得高兴的是,我的队伍凑出来啦,这次引入了一个女生呢!!广原创 2014-06-05 09:27:22 · 2555 阅读 · 1 评论 -
HDU1505(HDU1506的加强版)
昨天打 CF又跪了,最近睡不好睡不好睡不好~感觉整个人都累傻了,根本无办法写下去,仅仅写了一题签到题就跪了orz..从未试过这么悲剧。今天早上凭着我的意念(“怨念”),七点又起来了!我已经连续好多天七点自动起来(不是自然醒,是意念,是意念....),刷啊刷啊刷dp.今天刷的是昨天的加强版,实际上就多了一个for循环,和做高度处理,不直到是不是正解( ╮(╯▽╰)╭ ),但是AC就好了..原创 2014-06-02 09:30:28 · 1304 阅读 · 0 评论 -
HDU2577dp基础
最近广州很热啊,住在楼顶7楼的我真心热,听闻不超过八层不建电梯,所以我们就悲剧了,每天都爬七楼,不过早已习惯了,但是一身汗有木有!今天早上做的还是dp,题目的意思就是输出一串含大小写字符串,最小键入次数,平时我只用caps来切换大小写简直无法直视这题目……后来shift切换大小写这点让我小小郁闷代码注释打得很清晰,话说我比赛时候都会打注释的……因为怕乱。上课了!/*******原创 2014-05-27 08:04:44 · 887 阅读 · 0 评论 -
斐波那契数列的四种实现
这学期我们终于开始学习算法设计。第一次实验室实现斐波那契的四种算法,递归,非递归,公式法,矩阵相乘法。当然,这些都是很基础的啦。上机的时候,受到编译环境的问题(是不是高校都喜欢配置VC6.0?)让我很是郁闷,比如说long long无法用了,要用__int64,而__int64不支持cout操作。最后只能用scanf,printf等等保持统一风格#include#include#i原创 2014-03-04 09:14:00 · 1175 阅读 · 0 评论 -
简单的背包问题(入门)HDU2602 HDU2546 HDU1864
动态规划,我一直都不熟悉,因为体量不够,所以今天开始努力地学习学习。当然背包从01开始,特意选了一道HDU的简单背包问题。HDU的2546。题目很简单: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某原创 2014-03-08 13:24:41 · 1013 阅读 · 0 评论 -
HDU1058(还是简单dp)
昨天一个数据挖掘的公司跟我说我面试通过了,问我去不去,我在犹豫,因为我在等百度的面试。我在想,如果我说去了,那么意味着我未来的第一份工作极度有可能是数据挖掘,虽然数据挖掘是未来的正道~(起码比研发更吃香..)但是我目前兴致不是特别高,犹豫犹豫犹豫,今天就要给答复了。烦恼!如果我放弃了,那么我就不能赌一盘百度,如果我坚持,再跪掉百度,那么我这个暑假实习就可以算是很失败了。有没有朋友给些意见?今天原创 2014-06-04 08:43:56 · 2512 阅读 · 0 评论 -
HDU3183(RMQ+鸽巢原理)
题目的意思是对于一个n位数,删除m个位后,得到的最小数是什么,比如12345 2,删除两个位,得到最小的就是123.实际上这题目解法很多,好像有贪心,线段树,RMQ等,因为我最近在学习RMQ,所以就用RMQ了。这题目用了一个鸽巢原理,得到的m-n位数的第一位,必然出现在1~m-n+1,这个由鸽巢原理就十分明显了(如果1~n-(m-n)+1都没有的话,剩下的m-n-1个位是不可能凑出m-n个位的原创 2014-06-06 08:52:58 · 1738 阅读 · 1 评论 -
完全背包的变形POJ1252
话说今天做背包做到有点累了,题目是英文的……而且还很长,我看了好久(弱爆了)。题目大概的意思就是,有六种硬币,之后,求用这六种硬币最小数目支付1到100美分的平均值,以及最小数目中的最大值。很容易就想到了不找零的情况。即:1 2 5 45 50 60 六种硬币中,我买了49分,那么应该就是45 +2+2 3个硬币,但是有找零情况下就是50 -1。这就头痛了,我在想,要不加入硬币为负数原创 2014-03-17 22:33:07 · 802 阅读 · 0 评论 -
LCS最长公共子序列HDU1159
最近一直在学习算法,基本上都是在学习动态规划以及字符串。当然,两者交集最经典之一则是LCS问题。首先LCS的问题基本上就是在字符串a,b之间找到最长的公共子序列,比如 YAOLONGBLOG 和 YCLPBPG,其最长公共子序列则是YLBG当然当字符串比较大时候,枚举则略显困难。首先我们先考虑求一个基本问题,就是LCS的长度。很容易可以理解递推式: 当a[i]==b[j],c[原创 2014-03-23 23:31:10 · 797 阅读 · 0 评论 -
高校俱乐部第二届战神杯题解
Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的所有回文数。现在给定一个闭区间[a,b],求这个区间里有多少个回文数。比如[20,30],只有一个回文数那就是22. 输入描述: 输入包含多组测试数据,每组测试数据包含两个整数a,b,(0输出描述: 对于每组测试数据输出相应的答案。思路:水题。这个明显是水神杯...聪明的你,肯定不会暴力求解的....对吧?!太聪原创 2014-06-03 18:09:19 · 1509 阅读 · 5 评论 -
多重背包的入门题目HDU1171,2191,2844.
首先,什么叫多重背包呢?大概意思就是:一个背包有V总容量,有N种物品,其价值分别为Val1,Val2……,Val3,体积对应的是Vol1,Vol2,……,Vol3,件数对应Num1,Num2……,Num3求背包至多装满的最大总价值。其实,首先可以当作01背包来做,这时候复杂度就是O(V*sum(Num[i])); 简单代码来说就是 for(int i=1;i<=N;i++)原创 2014-03-11 14:58:00 · 745 阅读 · 0 评论 -
简单的背包变形HDU1203,HDU2955
今天一直在写背包,不过中间停了一段时间在写shell。一直在做01背包。今天做了这两题很相似的背包首先是HDU1203Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经原创 2014-03-08 22:19:02 · 886 阅读 · 0 评论 -
HDU基本最*子序列集锦1
最大连续子序列(HDU1003,1231)最大递增子序列和,sum[i]=max(sum[j])+a[i],j最长公共子序列,LCS经典算法(HDU1159)。题解:实际上,我没看出hdu1003和1231的本质差别,形式上的差别就是记载的东西不一样,一个是记载下标,一个是记载元素。基本就是那么回事吧。很多算法书在讨论时效都会拿这个例子来说明,让大家看到算法的力量,从一个弱渣算法到原创 2014-05-30 11:26:16 · 1052 阅读 · 0 评论 -
HDU1006、3037、2084、1176题解
最近就只有早起做题,做完就上课,周六日可以做些恶心点点的,平时要上课就只有做做DP,数学题什么的了。HDU1006,十分恶心的一题,实际上我还不是很懂,看着kuangbin大神的代码基本对着拍,没有什么改进。题目的意思就是时钟里有三条针,时分秒针,两两超过D度就开心,问一天有百分只几是开心的。思路就是:模拟,区间交,关键,精度问题,这个针算是连续的~不是60秒动一下分针!/**原创 2014-05-26 19:32:32 · 1416 阅读 · 0 评论 -
HDU3591找零,背包
题目大概的意思就是:小强用硬币买东西,硬币有N种,面值为Vi,店家有各种硬币都有无限个,而小强只有Ci个(分别对应Vi)问最小交易硬币数,就是一个有找零的背包问题啦。我的上一篇博客跟这hdu3591的类型非常非常接近,所以我很快就写完,并且很快地WA了无数次。后来很苦恼,看看别人写的代码,他们的思想大概是这样子。用dp2去记载找零,就是dp2[i]=min{dp2[i],dp2[i-V原创 2014-03-17 22:53:50 · 596 阅读 · 0 评论 -
数位DP入门Ural1057
CF一战让我觉得很疲倦,所以今天感觉很慢。昨天解D题时候,因为太累,根本连题目都没看,今天看了之后感觉不会做,听闻是数位DP问题。有某神说过,DP的功力建立在刷过的题上,我真的毫无功力可言。介绍大家一个很不错的文章。中学生写的啊!瞬间觉得自己弱爆了……http://wenku.baidu.com/link?url=q4atTAoZVGlV6sfo0fhED06ogbktY38_原创 2014-04-07 23:21:40 · 1106 阅读 · 0 评论 -
ZOJ 3502 Contest (状态压缩+DP , py大法好)
今天连续更新三篇文章呢,习惯在文章前面写一些无(fei)关(hua)紧(lian)要(pian)的东西。训练赛到最后也没有水过去,真是伤心,精度卡得很死,当时要是用decimal可能就OK了,本来想实验的,但是zoj好像开不了。题目的意思就是最多十条题目,找一个最优排列,并输出期望,每道题的期望max(matrix[][j])。用状态压缩搞出排列2^10,再dp,dp比较明显。写的原创 2014-09-06 11:35:03 · 1555 阅读 · 0 评论