自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 POJ 1080 Human Gene Functions DP

传送门:POJ1080以下转自:http://blog.csdn.net/lyy289065406/article/details/6648156设dp[i][j]为取s1第i个字符,s2第j个字符时的最大分值则决定dp为最优的情况有三种(score[][]为s1[i]和s2[j]两符号的分数):1、  s1取第i个字母,s2取“ - ”: dp[i-1][j]+s

2017-01-30 21:53:26 223

转载 POJ 1260 Pearls DP

传送门:POJ1260以下转自:http://blog.csdn.net/i_want_to_be_a_god/article/details/38032029题意为:给定一系列的不同质量项链上的珠宝数量和价格(按质量升序给出,同时价格也升序)。可以用价格高的珠宝来替代价格低的珠宝。这样或许可以节省总钱数。而题目就是要求出购买所有数量的珠宝所需支付的最低价格。理解题目要注意如下:

2017-01-30 21:43:23 183

原创 POJ 1836 Alignment DP LIS

传送门:POJ1836题意:有n个人站成一排,给出他们的身高,让其中某些人出列,要保证剩下的人能看到左边或右边的排头,问最少出队人数是多少。思路:刚看题的时候理解错了题意,还以为剩下的人只能看向同一边,心想这不就是个裸LIS么。。结果还是我太年轻啊。。其实剩下人的身高可以是这样:1 2 3 2 1  或者这样: 1 2 3 3 2 1  正确解法:正向和反向做LIS,然后记录每个点

2017-01-30 21:18:27 225

原创 POJ 3267 The Cow Lexicon DP

传送门:POJ3276题意:给定一串字符串和多个单词,问最少去掉多少个字母才能使其由给定单词拼出来。  思路:令dp[i]表示到第i个字母最少去多少个字母,则有(设字符串为s):1.若s[i]与某个单词c首字母相同,则dp[i]=min(dp[i],dp[j]+j-i-strlen(c))2.若s[i]与所有单词首字母都不同则有dp[i]=dp[i-1]+13.初始化dp[n]

2017-01-30 21:01:49 177

转载 POJ 1837 Balance DP好题

传送门:POJ1837以下内容转载于:http://blog.csdn.net/lyy289065406/article/details/6648094/题目大意:有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。其中可以把天枰看做一个以x轴0点作为平衡点的横轴输入:2 4 //C 钩子

2017-01-30 17:52:00 298

原创 Palindrome POJ1159 LCS+滚动数组

传送门:POJ1159题意:求给定字符串最少再添加多少个字符能形成回文串。思路:先说感觉超奇妙的一种思路,先求出给定字符串和其逆串的LIS,题目所求即为n-LIS。

2017-01-30 17:29:24 252

原创 POJ1267 Cash machine 多重背包

传送门:POJ1276题意:给定一种新货币的多种面额和每种面额的数量和一个数额上限,问在不超过数额上限的前提下用给定的货币最多能凑出多大数额来。思路:典型的多重背包,可以说是模板题,只不过本题中w[i]==v[i]而已。可以用二进制优化,也可以单调队列优化。不明白多重背包是啥的请自行搜索《背包九讲》。二进制优化代码:#include#include#include#i

2017-01-25 19:02:57 243

原创 多重背包模板--二进制优化模板&&单调队列优化模板

二进制优化模板:void zero(int cost,int weight){ for(int i=V;i>=cost;i--) dp[i]=max(dp[i],dp[i-cost]+weight);}void complet(int cost,int weight){ for(int i=cost;i<=V;i++) dp[i]=max(dp[i],dp[i-cost]+we

2017-01-25 18:49:40 919

原创 HDU 6012 Lotus and Horticulture 离散化

传送门:HDU6012先不说题意,就说这题有毒啊!题给样例运行结果为73或83都能AC!也是绝了!题意:这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望。Lotus将所有的n株盆栽都放在新建的温室里,所以所有盆栽都处于完全相同的环境中。每一株盆栽都有一个最佳生长温度区间[l,r],在这个范围的温度下生长会生长得最好,但是不一定会提供最佳的研究价值(Lotu

2017-01-24 15:56:44 293

原创 HDU 1067 Gap bfs+hash

传送门:HDU1067题意:给出表如第一个图,给出每个数,共有28个数,首先要将11,21,31,41放到前面去如第二个图,然后每次可以挑选一个空位把某个数放在此位置,但是要保证此数恰好是空位左边的数的后一个数,比如空位左边的数是42,则只能把43移到空位去。如果是47的话是没有后一个数的。思路:将32个数做成个字符串然后hash记录,然后bfs搜索。估计用map应该也可以。代码:

2017-01-23 21:31:53 378

原创 HDU 3085 Nightmare 双向bfs

传送门:HDU3085题意:  n*m地图上有  ‘. ’:路  X:墙  Z:鬼,每秒蔓延2个单位长度,可以穿墙,共两个,每秒开始时鬼先动   M:每分钟可移动3个单位长度  G:每分钟课移动1个单位长度问两人是否可在不被鬼吃掉的前提下成功碰面思路:双向bfs,即对两人同时bfs,若某人走的格子另一个人已经走过,则说明能碰面

2017-01-23 21:05:47 234

原创 HDU1560 DNA sequence IDA*

传送门:HDU1560题意:给定n个子序列,求包含这n个子序列的最短序列。思路:由于只要输出最短长度,所以可以用IDA*,每次增加搜索深度,当某次搜索成功,这个深度就是最短的字符串长度。关键就是IDA*中的h值怎么估算,一开始我用的是很容易想到的找差的数量最多的字符串s,s差的字母数量作为h值,这样能够水过这个题了,但是其实还不够,像下面这组数据就跟本跑不出来:18AAAA

2017-01-23 20:46:53 314 1

原创 HDU 3533 Escape 预处理+bfs

传送门:HDU3533题意:一个人从(0,0)跑到(n,m),只有k点能量,一秒消耗一点,在图中有k个炮塔,给出炮塔的射击方向c,射击间隔t,子弹速度v,坐标x,y问这个人能不能安全到达终点要求:  1.人不能到达炮塔所在的坐标 2.炮塔会挡住子弹 3.途中遇到子弹是安全的,但是人如果停在这个坐标,而子弹也刚好到这个坐标,人就被射死(即人只会在整数秒死) 4.人可以选择停止不动思路:先把所

2017-01-23 20:17:07 320

原创 HDU 3567 Eight II 预处理+bfs+hash

传送门:HDU3567题意:经典八数码问题,将八数码从状态A转化到状态B,问最短且字典序最小的解法。思路:先说说我自己吧,我是刚做完了POJ1077就来做这个题,当时感觉这不是一样的么,改个bfs结束条件不就完事了,然后就一发wa。。看题解才发现A*算法不能保证输出结果是字典序最小的,仔细想想,好像确实是,因为A*中F=G+H的等式是为了更快的求得解,我们每次从优先队列中取出来的状态是F值

2017-01-23 19:36:52 1148

原创 POJ 1077 八数码问题

传送门:POJ1077题意:经典八数码问题求解。建议做之前先看一下http://www.cnblogs.com/goodness/archive/2010/05/04/1727141.html,八数码问题的八种境界,不过个人感觉其中的hash部分讲的有问题,至少和代码中的hash方法不一样,不过也有可能是我理解的不到位,不管怎样,以代码为准吧,而且这篇博客其他部分写的还挺好的。我这里用的是

2017-01-23 18:09:31 560

原创 UVA 11624 Fire! bfs

UVA 11624Fire!Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of the maze neglected to create a fire escape plan. Help Joe escape the maze.Given Joe

2017-01-23 17:18:11 330

原创 POJ 3414 Pots

传送门:POJ3414题意:有两个容量已知的杯子,给定倒水的方法,问怎么能够倒出C单位水来。倒水方法:1.FILL(i) 将i杯倒满   2.DROP(i)将i杯倒空   3.POUR(i,j)将i杯的水倒入j杯中(若满则停止)。思路:个人建议做这题之前先去做一下HDU1495,把那题搞明白这题就剩下路径输出的问题了。其实这题也就难在路径输出上,因为倒水方法都给定了,bfs

2017-01-23 16:33:55 190

原创 非常可乐HDU1495

传送门:HDU1495中文题意就不说了。思路:这题被挂到搜索专题里,可我怎么想也想不出来该咋搜,其实还是思路太窄,原来做的搜索题大部分都是走迷宫什么的。。思路被限制住了,但看了题解发现这里bfs的状态转移实际上并不难,在走迷宫之类的问题中,每个点都是一种状态,状态都是从一个点朝四个方向进行转移,这里三个杯子的水量是一种状态,只不过状态转移换成了把水从哪个杯子倒向哪个杯子的问题,一共有六种情

2017-01-23 16:17:30 261

原创 POJ 3279 Fliptile 开关问题

传送门:POJ3279题意:牛翻地,每翻动一块地其上下左右的四块地也会跟着翻转,问最怎样用最少的步数把地都翻成正面向上。(1代表反面,0代表正面)并且输出要是字典序最小。思路:典型开关问题,不过是二维的,建议先做POJ3276的一维开关问题,至于开关问题的理论推导,特别推荐看挑战程序设计P150-P157,尤其是最后的集合整数的讲解表示个人感觉极为精妙。然后就题论题,本题主要思路就是先

2017-01-23 15:00:16 290

原创 HDU3001 三进制状压DP

传送门:HDU3001题意:给定一个无向带权图,问在每个点最多走两次的情况下,将图中所有点都遍历一遍的最小花费是多少。我做的时候这题被放在搜索专题里。。然后没认真看题还以为每个点只能走一次,认为是个简单的TSP问题。。然后就被教育了。。解法:因为每个点最多走两次,可以由一般的二进制状压联想到用三进制去表示状态,用一个三进制数字的一位数字表示一个点的访问状态,0代表未访问,1代表

2017-01-17 21:52:20 440

原创 树状数组模板

ll bit[1000005];int n;ll sum(int i)//注意自己修改类型{ ll s=0; while(i>0) { s+=bit[i]; i-=i&(-i); } return s;}void add(int i,int x){ while(i<=n) { bit[i]+=x; i+=i&(-i); }}

2017-01-16 17:02:54 202

原创 Codeforces 8VC Venture Cup 2017 - Elimination Round D.PolandBall and Polygon

传送门:PolandBall and Polygon题意:给定n条边的凸多边形,保证这种凸多边形任意三条对角线不会交于一点,然后从一顶点出发,每次走K步,然后将出发点与终点连接起来,输出此时多边形被分成的块数,重复此步骤n次。解法:个人感觉就是多画几个图找规律。。或者你的几何学的好能推出公式或规律来,我发现的规律就是每画一条对角线,增加的块数等于该对角线跨过的对角线条数+1,也等于走的K步

2017-01-16 16:57:55 516

原创 HDU1520 Anniversary party 树形DP

传送门:HDU1520题意:学校要开一个聚会。学校的教职工之间有上下级关系,为了让所有人开心,宴会组织者决定不会同时邀请一个人和他的上级,对于每一个人,他能给聚会带来的欢乐度有一个值,问组织者该邀请哪些人能够使宴会的欢乐度达到最大值。典型的树形DP,同时也是我第一个树形DP的题目。看了题解以后发现树形DP不过是把DP换到了图上去做,所以要做的第一步就是建图,我采用的是做图论题目经常用的

2017-01-16 00:44:48 203

原创 UVA 674 - Coin Change 完全背包求状态数

传送门:UVA674题意:用1、5、10、25、50 这五个数去凑给定的数n,问有多少种方案。个认为这题真的挺好的,如果你理解透彻了,20行就能写出来,但要是抓不到本质就无从下手。网上关于这题大致有两种解法,一是递推,一是记忆化搜索,其实二者在思想上是相互转化的,也就是DP的根本。通过做这个题更加深刻理解了这种联系。递推分析:完全背包问题。定义状态dp[i,j],代表用前i

2017-01-16 00:28:48 397

转载 POJ1185 炮兵阵地 状压DP经典

传送门:POJ1185中文题就不说题意了。网上都说是经典的状压DP,我也是第一次做状压DP的题,但感觉自己深深的被这题奇妙的位运算震慑了。。世界真奇妙。。奉上一篇讲解的无敌巨明白的解题思路:状态压缩DP(使用位运算加速)这是个经典的状态压缩DP,为加深印象详细写写一下报告,由于是中文题目所以不说题意了思考方法:首先,一个炮的攻击有两行,所以对于第i行来讲,i

2017-01-15 23:09:26 301

原创 HDU3555 Bomb 数位DP经典题

传送门:HDU3555题意:1到n区间内有多少个数字含有‘49’。题解:典型数位DP的题目,这次做个题的收获是学到了通用的递推解数位DP的方法。递推解法://dp[i][j]:长度为i的数的第j种状态//dp[i][0]:长度为i但是不包含49的方案数//dp[i][1]:长度为i且不含49但是以9开头的数字的方案数//dp[i][2]:长度为i且包含49的方案

2017-01-15 22:48:11 294

原创 HDU2062 Subset sequence

传送门:HDU2062题意:给你一个数n,问从1到n的数字排序,字典序第m个是多少,例如:n=2时字典序序列为(1)(1,2)(2)(2,1)解法:这题我几乎是纯看的题解。。自己一点思路也没有,其实也怪自己太浮躁,一遇到点稍难的题目就光想着去搜题解,就认为自己想不出来,实际上根本不深入去想,这是个致命的缺点啊,一定要改!附上大神解题思路:   Problem Analyse

2017-01-15 21:51:56 219

原创 HDU4576 Robot 概率DP

传送门:HDU4576题意:1到n形成一个环,机器人从一号点出发,给定每次走的长度,方向随机,问最后在某个区域内的概率是多少。这应该是入门级的概率DP了吧,也是我做的第一个概率DP,写篇博客纪念一下吧,还有就是这个题卡时间和内存,要用到滚动数组,正好也可以拿来学习以下滚动数组的用法,以下是个人看法:由于DP特殊性质,常常在求解当前状态的时候要用到前面的状态,但是一般只会用到前一次的状态

2017-01-15 21:07:25 852

原创 Constructing Roads In JGShining's KingdomHDU1025

传送门:HDU1025题意:抽象出来就是给你两条线,线上有许多点,然后给定点对之间能连线,但是连线不能交叉,问最多连多少条线。再抽象一层的话其实就是最长递增子序列。但这个题数据量稍大,传统的O(N^2)复杂度过不了,就需要使用一种O(NlogN)的方法了,但是要注意这种方法只能求最长上升子序列的长度而无法求出序列,因为它采用的是一种转化替代的思想,具体思想个人感觉只可意会不可言传,可以

2017-01-15 19:52:20 171

空空如也

空空如也

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

TA关注的人

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