随笔分类 -  动态规划

摘要:题目链接http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=1350http://main.edu.pl/en/archive/oi/8/kop求平面n个点(n#include #include #include #define lson rt=r... 阅读全文
posted @ 2014-10-08 23:46 KRisen 阅读(358) 评论(0) 推荐(0)
摘要:比赛的时候想的是把n个n个的题目进行状压 但这样不能讲究顺序,当时精神面貌也不好,真是挫死了其实此题的另一个角度就是一个n个数的排列,如果我对n个人进行状压,外面套一个按题目循序渐进的大循环,那么,在当前做第i个题目,前i-1个题目已经做完,然后做完的人的状态为j, j可能是1110 1101 10... 阅读全文
posted @ 2014-09-29 23:18 KRisen 阅读(300) 评论(0) 推荐(0)
摘要:今天西安网赛的题,因为被那个博弈卡住,没什么心情看这个这个题好像很简单的样子,但是看了下数据量,发现用n^2承受不起,然后我想了一下 没想出什么更低复杂度的算法出来。。后来发现别人还是用n方算法过的,只是用了下剪枝。。。。擦,我不是很敢尝试这种,,估计今天这个简单DP过的人不是很多 就是卡在时间上的... 阅读全文
posted @ 2014-09-14 21:22 KRisen 阅读(740) 评论(2) 推荐(0)
摘要:第一次接触一个这最长公共上升子序列不过其实搞清楚了跟最长公共子序列和 最长上升子序列如出一辙两重循环,对于当前不相等的,等于前一个的值,相等的,等于比当前A【i】小的最大值+1。弄个临时变量记录最大值即可#include #include #include #include using namesp... 阅读全文
posted @ 2014-09-09 16:47 KRisen 阅读(250) 评论(0) 推荐(0)
摘要:zoj 上次的月赛题,相当牛的题目啊,根本想不到是状态压缩好吧有个预先要知道的,即500个16相加那也是不会超过8192,即,合并最多合并到4096,只有2的12次方所以用状态压缩表示前面有的序列组合,找到了符合的,就往上累加合并生成新状态,否则就添加到前面的状态的后面构成新状态,因为每一个的状态都... 阅读全文
posted @ 2014-08-31 10:42 KRisen 阅读(195) 评论(0) 推荐(0)
摘要:本以为是个树形DP,按照树形DP的方法在那里dfs,结果WA到死,因为它存在有向环,不是树,凡是存在环的情况切记不要用树形的方法去做题目的突破点在于将边排完序之后,用点表示以该点为边结尾的最大长度,因为是按边排序从小到大加边,所以后面加的边肯定比前面的小。要注意相同边的情况,要搞个缓冲,因为相同边的... 阅读全文
posted @ 2014-08-31 10:10 KRisen 阅读(355) 评论(0) 推荐(0)
摘要:咋一看确实想到的是树形DP,但是我一开始也马上想到环的情况,这样应该是不可以进行树形DP的,然后我自以为是地想用有向图代替无向图,而且总是从能量高的指向能量低的,这样自以为消除了环,但是其实是不对滴,这样的话在树形DP的过程中就会出问题。然后实在没想到好的方法,去看 了下这题的discuss,结果大... 阅读全文
posted @ 2014-08-25 10:13 KRisen 阅读(343) 评论(0) 推荐(0)
摘要:意思是有个塔防游戏,有三种塔,红塔在怪物经过的时候每秒会产生攻击力大小的伤害,绿塔对怪物经过以及经过之后每秒产生攻击力大小的伤害,还有种蓝塔,对怪物进行减速,即怪物从此之后经过一个单位都会减慢c秒最后最最大的伤害值是多少又是比赛的时候没想出来,知道是个DP,但是对这种多变量型的DP就是有点不感冒。这... 阅读全文
posted @ 2014-08-24 18:14 KRisen 阅读(290) 评论(2) 推荐(0)
摘要:其实现在想起来是个巨简单的DP,模型就跟LCS很像,比赛的时候居然没想出来,在聪哥提醒下还卡了个地方就是说给定一串n个数字的序列,可以连续合并,最终使得序列是回文的,题目也给定了合并数字所需的代价,合并一个为0,合并2个 3个。。n个的代价都有题目比较新意的地方就是回文,这也是我们要解决的主要地方,... 阅读全文
posted @ 2014-08-24 17:34 KRisen 阅读(267) 评论(0) 推荐(0)
摘要:这个题目一开始不知道如何下手,感觉很像背包,里面有两个变量,一个带宽B,一个价格P,有n个设备,每个设备有k个可选的器材(只需选一个),每个器材都有自己的B和P,n个设备选n个器材,最终,FB=所有器材里最小的B,FP=总的价格,要使得FB/FP最大这种题目得先把一个变量给控制起来,或者说枚举其中一... 阅读全文
posted @ 2014-08-24 17:11 KRisen 阅读(247) 评论(0) 推荐(0)
摘要:还是看了little_w大神写的才知道怎么写,看完发现自己题意也理解错了,里面有个neighboring,意思就是你指定任务的时候指定的是原序列中连续的一段然后就是怎么DP了,新学了个很好的dp模型 dp[i][j]表示前i个robot已经分担了j个任务是否可行,可行为1,不可行为0.所以对于某个当... 阅读全文
posted @ 2014-08-24 17:02 KRisen 阅读(241) 评论(0) 推荐(0)
摘要:统计一个只由大写字母构成的字符串的,子串数目,这里指的是子串不是子序列,可以不连续,请注意然后我按照计数DP的思想,dp[i][j]表示长度为i的子串,最后一个字母为j然后为了去重,每一次dp的时候,记录这个时候最后一位所在的位数,而且之前用一个后缀记录之后有没有该字母,这样每次,从上一次的j所处的... 阅读全文
posted @ 2014-08-11 10:19 KRisen 阅读(233) 评论(0) 推荐(0)
摘要:给定两个01序列,每次操作可以任意改变其中的m个数字 0变 1 1 变 0,正好要变化k次,问有多少种变法dp模型为dp[i][j],表示进行到第i次变化,A,B序列有j个不同的 变法总和。循环k次,每次针对m,向那j个不同 分1-j个即可,不过要用到组合数,因为对每个数操作不同都不一样最后结果就是... 阅读全文
posted @ 2014-08-10 16:38 KRisen 阅读(158) 评论(0) 推荐(0)
摘要:给定一个数字串,问有多少种拆分方法,题目所谓的拆分,就是分成若干个子块,每个块的和 即为各个数字相加,当前块的和一定要小于等于后面的块的和比如1117 就有这些[1-117], [1-1-17], [1-11-7], [1-1-1-7], [11-17],and [111-7]肯定是计数DP,而且二... 阅读全文
posted @ 2014-08-10 15:21 KRisen 阅读(190) 评论(0) 推荐(0)
摘要:非常好的一个题目,CF上的DP都比较经典题意就是 给定一个串A,B,正好执行K次操作,每次操作可以把 A串从中间切开,并调换两部分的位置,问最后得到B串共有多少种不同的切法(只要中间有一次不同,即视为不同)首先,题目的一个关键点一定要抓到,就是 ,不管怎么切 然后调换位置,其实串根本没变,你把串想成... 阅读全文
posted @ 2014-08-10 15:02 KRisen 阅读(602) 评论(0) 推荐(0)
摘要:也是经典的计数DP题,想练练手,故意不写记忆化搜索,改成递推,还是成功了嘞。。。不过很遗憾一开始WA了,原来是因为判断结束条件写个 n或s为0,应该要一起为0的,搞的我以为自己递推写挫了,又改了一下,其实递推没问题,就是写出来不好看#include #include #include #includ... 阅读全文
posted @ 2014-08-10 13:47 KRisen 阅读(159) 评论(0) 推荐(0)
摘要:RT最近不想写博客,累积了一周多的题目,今天趁着周日放假,全部补上吧dp[i][j]表示前i个数,操作后的值为j的总个数注意取或不取,有种完全背包的意味。因为数字小于1024,所以异或的结果也绝对不会超过1024,在循环第二维的时候到1024就行了,不要循环多了,反而会错,循环多了 异或值会超,结果... 阅读全文
posted @ 2014-08-10 13:39 KRisen 阅读(214) 评论(0) 推荐(0)
摘要:这个题目给定N航班的发出时间和结束时间以及价值,要求不冲突时间的最大价值第一时间想到经典的N方DP,即对航班按发出时间排一下序之后每个i对前面的都扫一遍时间过不了N有10万,只能想优化了,一开始想了个用树状数组记录每次加入某个航班之后 后面的所有在结束时间后的区间全部可以加一个最大值,但是首先时间区... 阅读全文
posted @ 2014-07-28 23:48 KRisen 阅读(310) 评论(0) 推荐(0)
摘要:这个题首先要利用题目的特性,先贪心,否则无法进行DP因为求期望的话,越后面的乘的越大,所以为了得到最小值,应该把概率值降序排序,把大的数跟小的系数相乘然后这种dp的特性就是转移的时候,由 i推到i+1每次添加一个数,就要考虑这个新数应该和谁放在一组,枚举他放在哪一组即可dp[i][j]代表当前第i个... 阅读全文
posted @ 2014-07-22 23:50 KRisen 阅读(333) 评论(0) 推荐(0)
摘要:昨晚CF碰到的题目,昨晚CF跪了啊啊啊题意比较简单,给定一排挨在一起的板子,宽度都为1,高度不一,一个刷子宽度也是1,可以横着刷,也可以竖着刷,但是任何时刻刷子都要在板子上,也就是说,如果横向的时候,出现断层,就要算2次或者多次了 最后求全部刷完的最小刷的次数昨晚真的是想了各种方法,dp也想了,二分... 阅读全文
posted @ 2014-07-18 22:08 KRisen 阅读(964) 评论(0) 推荐(1)