随笔分类 -  dp(动态规划)

摘要:分析:一道非常恶心的dp题.每个人要么选或不选,很像是0-1背包,可以套用背包问题的状态,但是因为题目要求3个值,所以可以再加一维表示3个答案. f[i][j][k][l][p][0/1/2]表示i个守门员,j个后卫,k个中锋,l个前锋,花费是p,最后一维是0则表示不考虑队长的价值,1是方案数,2是 阅读全文
posted @ 2017-10-23 08:56 zbtrs 阅读(163) 评论(0) 推荐(0)
摘要:分析:用裸暴力可以得60分,每次dfs,看第i个盒子到底有没有钻石就行了.其实这很像0/1背包问题,只是多了一个m的限制.这要怎么办呢?因为概率是可以加减的,所以可以先不考虑m的限制,求出概率,然后dfs一遍把money < m的概率给减掉就好了. 正解是meet in the middle,dp+ 阅读全文
posted @ 2017-10-20 14:33 zbtrs 阅读(193) 评论(0) 推荐(0)
摘要:分析:如果每个数可以选任意多次,那么就是一个很普通的dp问题,这里每个数只能选一次,还是考虑dp,设f(i)表示1~i是否都能选上.考虑下一个数j,如果j > i + 1,那么i+1这个数就选不上,答案就是i+1,否则f(i)可以转移到f(i + j),这个算法是建立在集合有序的情况下的,所以要先排 阅读全文
posted @ 2017-10-19 18:18 zbtrs 阅读(288) 评论(0) 推荐(0)
摘要:题目描述LYK进了一家古董店,它很想买其中的一幅画。但它带的钱不够买这幅画。幸运的是,老板正在研究一个问题,他表示如果LYK能帮他解出这个问题的话,就把这幅画送给它。老板有一个n*m的矩阵,他想找一个和最大的子矩阵,这个子矩阵可以由四个参数x,y,x2,y2(1<=x<=x2<=n,1<=y<=y2 阅读全文
posted @ 2017-10-17 21:35 zbtrs 阅读(281) 评论(0) 推荐(0)
摘要:题目描述江爷爷给你出了一道题:给你一个图,保证每个点最多属于一个简单环,每个点度数最多为3,求这个图有多少“眼镜图形个数”保证图联通哦~其中“眼镜图形个数”,定义为三元组(x,y,S),其中x和y表示图上的两个点,S表示一条x到y的简单路径,而且必须满足:1.x和y分别在两个不同的简单环上2.x所在 阅读全文
posted @ 2017-10-13 23:39 zbtrs 阅读(441) 评论(0) 推荐(0)
摘要:题目背景 圣乔治:不用拘泥,剩下的时间已不多…… 圣乔治:直呼我的真名—— 丝佩碧雅:圣乔治大人 圣乔治:如今,已无法维持结界,或是抑制深渊的前进 圣乔治:既然如此,我将献上这副身躯,期望最后的战斗 圣乔治:已经——应该没有再和我多需说明的话语了 圣乔治:我也明白,我和其他4人都一样,是没有内在的傀 阅读全文
posted @ 2017-10-13 19:22 zbtrs 阅读(494) 评论(0) 推荐(0)
摘要:分析:比较巧妙的一道题.经典的LCS算法复杂度是O(nm)的,理论上没有比这个复杂度更低的算法,除非题目有一些限制.这道题中两个字符串的长度不一样,f[i][j]如果表示第一个串前i个,第二个串前j个的最长公共子序列的话,复杂度会爆.但是LCS的长度很小,能不能换一种状态的表示方法呢? 回想0/1背 阅读全文
posted @ 2017-10-11 16:24 zbtrs 阅读(314) 评论(0) 推荐(0)
摘要:分析:一眼树形dp题,就是不会写QAQ.树形dp嘛,定义状态肯定有一维是以i为根的子树,其实这道题只需要这一维就可以了.设f[i]为以i为根的子树中的权值和.先处理子树内部的情况,用一个数组son[i]表示以i为根的子树中,i能走到的节点个数,可以利用son数组和当前点的权值来更新f数组. 处理了每 阅读全文
posted @ 2017-10-10 16:56 zbtrs 阅读(225) 评论(0) 推荐(0)
摘要:题目描述小 G 进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼。今天,天上会随机掉下 k 个馅饼。每次天上掉下馅饼,小 G 可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出选择,并且现在决定不吃的话以后也不能吃)。馅饼有 n 种不同的馅,根据物理定律,天上掉下这 n 种馅饼的概率相同且相互独 阅读全文
posted @ 2017-10-08 19:55 zbtrs 阅读(363) 评论(0) 推荐(0)
摘要:分析:显然是一道数位dp题,不过需要一些奇怪的姿势.常规的数位dp能统计出一个区间内满足条件的数的个数,可是我们要求第k个,怎么办呢?转化为经典的二分问题,我们二分当前数的大小,看它是第几大的,就可以了. 显然数位dp套上模板,再用上kmp的next数组就可以了,传递4个参数:还剩下多少位没有匹配, 阅读全文
posted @ 2017-10-07 00:03 zbtrs 阅读(566) 评论(0) 推荐(0)
摘要:分析:比较神奇的一道题.要把树变成环肯定要先变成链,然后把链给拼接成环.接下来考虑一个脑洞大开的树形dp:设f[i][0]表示i不与父节点相连的链数,f[i][1]表示i与父节点相连的链数,先考虑怎么转移f[i][0],如果i不与父节点相连,那么i肯定与两个子节点相连,其它的子节点都不与父节点相连, 阅读全文
posted @ 2017-10-05 23:02 zbtrs 阅读(314) 评论(0) 推荐(0)
摘要:题目描述总共有n颗糖果,有3个小朋友分别叫做L,Y,K。每个小朋友想拿到至少k颗糖果,但这三个小朋友有一个共同的特点:对3反感。也就是说,如果某个小朋友拿到3颗,13颗,31颗,333颗这样数量的糖果,他就会不开心。(也即它拿到的糖果数量不包含有一位是3)LYK掌管着这n颗糖果,它想问你有多少种合理 阅读全文
posted @ 2017-10-03 22:38 zbtrs 阅读(387) 评论(0) 推荐(0)
摘要:题目描述众所周知的是,火柴棒可以拼成各种各样的数字。具体可以看下图: 通过2根火柴棒可以拼出数字“1”,通过5根火柴棒可以拼出数字“2”,以此类推。 现在LYK拥有k根火柴棒,它想将这k根火柴棒恰好用完,并且想知道能拼出的最小和最大的数分别是多少。 输入格式(stick.in) 一个数k。 输出格式 阅读全文
posted @ 2017-10-01 18:35 zbtrs 阅读(434) 评论(0) 推荐(0)
摘要:分析:把题目换个方式理解,就是把各个点排成一列,并且指定了若干对的先后次序,问你有多少种序列满足要求. 显然是一道dp题,直接推出方程似乎有点点困难,那么先看看数据特点. 1.有一些点满足fi=0,那么直接输出n!就可以了. 2.保证所有的关系是一条链.我们假设所有链的长度和为sum,链1的长度为l 阅读全文
posted @ 2017-09-29 20:24 zbtrs 阅读(266) 评论(0) 推荐(0)
摘要:分析:之前的一道模拟赛题是dp+dfs,这道题是dp+bfs. 我们设f[stu][i][j]为当前状态为stu,走到(i,j)的答案,考虑怎么设计stu,每个人的状态有3种:要么在原地,要么被背着,要么已经到了终点,那么用一个3进制数保存就可以了. 下面考虑怎么转移,直接递推肯定是不对的,dfs也 阅读全文
posted @ 2017-09-27 15:52 zbtrs 阅读(285) 评论(0) 推荐(0)
摘要:分析:标准的棋盘dp问题. 如果没有技能,那么就很好做了,相当于传纸条的做法.有了技能的限制,我们就要加上一维表示用了多少次技能,这个时候转移就要用到dfs了,而且不能用填表法,要用刷表法,从当前位置用技能的状态来更新到达的位置的状态,dp状态转移方程也要写成刷表法的形式. 如果很难从以前的状态推得 阅读全文
posted @ 2017-09-26 15:20 zbtrs 阅读(241) 评论(0) 推荐(0)
摘要:题目背景 还记得NOIP2011的寻宝吗?6年之后,小明带着他的妹子小芳,再次走上了寻宝的道路。 然而这次他们寻宝回来之后,小明被困在了一个迷宫中。 题目描述 迷宫是一个n*m的字符矩阵。 小明在这个矩阵的左上角,只能向下和向右走,去和在矩阵右下角的小芳会合。 小明必须将他走过的路径上的,经过的字符 阅读全文
posted @ 2017-09-24 10:39 zbtrs 阅读(326) 评论(0) 推荐(0)
摘要:分析:看了题后没别的思路,感觉就是dp,普通dp的话状态和方程实在是不好设计,观察数据,发现N非常小,暗示了这道题要用状压dp来做. 先枚举每个集合,再用O(n^2)的暴力看这个集合内有多少个冲突,如果冲突数量不大于k,那么就可以分成1个集合了,否则一定要分成多个集合,那么枚举它的子集j,状态转移方 阅读全文
posted @ 2017-09-23 16:33 zbtrs 阅读(212) 评论(1) 推荐(1)
摘要:1592: [Usaco2008 Feb]Making the Grade 路面修整 Description FJ打算好好修一下农场中某条凹凸不平的土路。按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同时出现在修好的路中。 整条路被分成了N段,N个整数 阅读全文
posted @ 2017-09-20 20:32 zbtrs 阅读(361) 评论(0) 推荐(0)
摘要:众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一个奇怪的问题。有一堆他的妹子站成一排,然后对于每个妹子有一个美丽度,当然美丽度越大越好,chenzeyu97妹子 阅读全文
posted @ 2017-09-20 15:26 zbtrs 阅读(361) 评论(0) 推荐(0)