随笔分类 -  动态规划——线性dp

摘要:P2727 01串 Stringsobits 看了题解才做(抄)出来的,dp好弱啊 dp[i][j]表示前i位有j个1的串数。 转移方程 dp[i][j]=dp[i-1][j-1]+dp[i-1][j]。 重点数如何求出这个串呢 我们对于k(0->l)遍历求前缀和。当发现对于对于前缀和 sum[i] 阅读全文
posted @ 2019-08-10 10:00 Chuhanjing 阅读(190) 评论(0) 推荐(0)
摘要:codeforces百题计划第一周(3) 很典型的选择或者不选的线性dp。 两个状态,选择:dp[i][1],不选:dp[i][0] 状态转移也很容易,就在i-1的基础上考虑(详见代码) 阅读全文
posted @ 2019-08-06 10:41 Chuhanjing 阅读(184) 评论(0) 推荐(0)
摘要:codeforces百题计划第一周(2) 线性dp,记录每个数次出现的次数b[i],dp[i]的状态是处理完前i个数字后的最大值。 转移方程:dp[i]=max(dp[i-1],dp[i-2]*i*b[i]) 注意会爆int 阅读全文
posted @ 2019-08-06 09:46 Chuhanjing 阅读(231) 评论(0) 推荐(0)
摘要:Problem J. icebound 的商店Time limit: 1000msMemory limit: 65536KBDescriptionicebound 在得到神殿的宝藏之后,开了一家神秘的商店。你来到了商店,发现慷慨的icebound 搞了𝑇𝑇次促销活动。在每次促销活动中,icebo 阅读全文
posted @ 2019-03-23 22:13 Chuhanjing 阅读(346) 评论(0) 推荐(0)
摘要:关于异或运算,是可以求前缀和的。还有一些异或运算的性质 0^a=a; 交换律 a^b=b^a 结合律 a^(b^c)=(a^b)^c 分配率 a^(b+c)=a^b+a^c 自反律 a^b^b=a 判断两个数是否相等 a^b=0 这个题真的学到好多 要找 al⊕al+1⊕…⊕amid=amid+1⊕ 阅读全文
posted @ 2019-03-16 10:50 Chuhanjing 阅读(136) 评论(0) 推荐(0)
摘要:dp可以按照思想大致分为两种,一种是递推的形式,一种是递归的形式(记忆化搜素)。 比如求这个题因为无法知道从哪个点开始,所以只能用递归的形式,因为有一个回溯的过程。 但是很多题目既可以用递推也可以用递归。 最简单举例:Fibonacci数列 递推形式:f[1]=1;f[2]=1;f[n]=f[n-1 阅读全文
posted @ 2019-03-12 22:45 Chuhanjing 阅读(149) 评论(0) 推荐(0)
摘要:环形的解决很巧妙 1 #include <iostream> 2 #include <cstring> 3 #include <string> 4 #include <map> 5 #include <set> 6 #include <algorithm> 7 #include <fstream> 阅读全文
posted @ 2019-03-09 19:13 Chuhanjing 阅读(266) 评论(0) 推荐(0)
摘要:最近一直在写dp,然后别的就啥也不管了(wtcl),很明显的最简单的搜索题竟然卡了,一开始的思路是每一个格子都只能是从四周的格子转化过来的,只要找到四周最大的那个那么dp[i][j]=max+a[i][j],但是无法确定四周的状态,不知道i,j该怎么开始,所以就卡了,竟然不往搜索上去想,emmmm, 阅读全文
posted @ 2019-02-06 11:42 Chuhanjing 阅读(172) 评论(0) 推荐(0)