自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jason_crawford的博客

兴趣使然~随意看看

  • 博客(12)
  • 收藏
  • 关注

原创 ZSTUOJ3698——单调序列2

题目链接        这题和POJ3666是一样的题目,只是数据范围扩大了,从2000扩大到了5000,做法和POJ3666是一样的,只需扩展数组大小即可,所以就不赘述了,全当我极不负责的水了一篇博客好了。。。,POJ3666的解释可以看这里。#include#include#include#include#includeusing namespace s

2017-01-17 15:47:51 373

原创 POJ3666——Making the Grade(动态规划)

题目链接       这题反正我是觉得用DP做有点恶心,看别人的题解做的,转移方程是:dp[i][j]表示前i个元素的最后一个元素为全部元素第j小时的最小代价,则dp[i][j]=min(dp[i-1][k])+abs(s[i]-cop[j]),     ( 0≤i<n ,0≤j , 0≤k )从这个式子来看应该是有三重循环的,但有为大牛很巧妙的省掉了k的循环,从而降低了时间复杂度,然

2017-01-17 15:40:00 866 1

原创 HDU1069——Monkey and Banana(动态规划)

题目链接       题目要求找最高能叠的箱子的高度,其实就是按照求LIS的方式来求即可,只是此处的最长按照箱子的高度做参数,然后一个箱子能叠在另一个箱子上的前提是处在下面的箱子长和宽都比上面的箱子要大,不能相等,输入时分类一下再处理输入数组,然后按照长或者宽的顺序sort一下,再对另一个参数进行dp即可。#include#include#include#in

2017-01-16 15:40:03 382

原创 POJ1631——Bridging signals(动态规划)

题目链接       真的很想说这道题读懂题意比解决题目本身要难。。。然而题目本身的意思又很简单就是求最长递增子序列。但这道题有点特殊的地方就是要优化,常规的两个for的方法会超时,然后在《挑战程序设计竞赛》这本书上给了另一个nlogn的方法——就是定义dp[i]:=长度为i+1的上升子序列中末尾元素的最小值(不存在的话就是INF),初始化对dp[]数组全部赋值成INF,也就是+∞,然后对

2017-01-15 19:38:58 661

原创 POJ1065——Wooden Sticks(贪心)

题目链接       题目大意很好懂,给一连串数对,只要后一个数对的两个值比前一个数对两个值都大,那么该数对不消耗时间,否则消耗1单位时间。求如何安排数对顺序使得耗时最少。这题是贪心,先按L从小到大排序,然后对w进行贪心,其思想上和以前一道导弹拦截的题目几乎一模一样(题解链接),用vector存当前需要另外加工的w值,然后对每次更新均对vector进行搜索,找出与当前w差值最小且比其小的w

2017-01-15 11:37:10 555

原创 POJ3280——Cheapest Palindrome(动态规划)

题目链接       题目意思挺好懂的,就是说给你一个字符串,要求添加或删除若干的字符使得其成为回文串。给出每个字符添加和删除的代价,求出代价最小值。简单的DP,方程为:dp[i][j]=min(dp[i][j-1]+Map[s[j]-'a'],dp[i+1][j]+Map[s[i]-'a']);dp[i][j]表示第i个字符到第j个字符的最小代价,Map[s[i]-'a']表示删除或添加

2017-01-09 10:55:08 342

原创 POJ3616——Milking Time(动态规划)

题目链接       这道题感觉有点像任务调度,(由于智商感人)还是看别人的题解做的。题目要求获得更多的牛奶,但区间又不能重叠,所以状态转移函数dp[i]=max(dp[i],dp[j]+s[i].product),(j表示在i之前的且与第i个区间不重合的区间),dp[i]表示第i个区间能获得的最大产量。其中第i个并不是题目给出的第i个区间,而是按照结束时间排好序的第i个区间。看一下代码还

2017-01-07 17:09:17 439

原创 POJ2385——Apple Catching(动态规划)

题目链接       这道题听说是很水的DP入门题。然而,我连入门题都不会。看别人的题解弄的,关键点就是要抽象出问题的状态转移,其状态转移方程为 dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1])。其中dp[i][j] 表示的是 第i秒 第j跳 最多能吃多少苹果,这个看似很简单的方程我都理解了很久,其实主要的是没把别人的代码看完,这个方程是不完整的,还差

2017-01-06 20:28:46 591 1

原创 HDU1257——最少拦截系统(贪心)

题目链接         在kuangbin的DP专题里找到的,然而有点坑的是并不是用DP做的。。。此题用贪心才是正解啊~~,对于每一发导弹,若已经存在拦截系统,且可以拦截此导弹,那么重新开一台是没意义的,因为达到的效果和通过降低现有拦截系统高度来拦截所达到的效果是一样的,当然若拦截不了那就另当别论去开一台,问题是有多台可以降低高度那么选哪一台呢?答案当然是选高度最低的且能拦截此导弹的系统

2017-01-06 16:01:32 334

原创 HDU1114——Piggy-Bank(装满的完全背包)

题目链接       这道题是一道完全背包练手很好的题,比较容易,但是与纯的完全背包相比却做了部分很巧的改动。其一,这是一个要求装满的完全背包。其二,这个背包求得并不是最大值,而是最小值。那么如何解决这些变动呢?首先是看求最小值,这个好处理,那就是把max( )改成min( )就好了,但求最小值影响的却不只是函数的变化,还影响了对装满背包的处理。       我们知道,无论是01背包还

2017-01-05 10:15:52 509

原创 POJ3176——Cow Bowling(水DP)

题目链接       开始做DP的我表示要尊重每道水题(其实是只会水题。。。)这道题就是要找一条能从三角形定点到最底边的一条路径,方法是从底边开始往上找,一直取当前节点可达的最大值,最后找到定点即可,方法上模拟了背包问题的数组一维化处理,但是空间消耗还是大大滴(1700K)。。而且时间也跑了76ms。很想知道那些0ms跑出来的大神是如何做到的。#include#inc

2017-01-04 14:25:40 323

原创 POJ3262——Protecting the Flowers(贪心)

题目链接        题目大意是说农场主要尽可能的减少牛吃花造成的损失,所以赶牛回牛圈,但是一次只能赶一头牛,现给出赶一头牛花的时间和牛每分钟吃的花的数量,求最少牛会吃掉多少花?处理起来也比较容易,关键找到赶牛的顺序,所以排序是关键。其实利用sort函数就挺好的,写一个cmp,里面比较的就是按照a牛单位时间吃的花与赶b牛的时间乘积与b牛单位时间吃的花与赶a牛的时间乘积,选其较小者。然后统

2017-01-03 11:06:10 561

空空如也

空空如也

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

TA关注的人

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