随笔分类 - 动态规划——线性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]
阅读全文
摘要:codeforces百题计划第一周(3) 很典型的选择或者不选的线性dp。 两个状态,选择:dp[i][1],不选:dp[i][0] 状态转移也很容易,就在i-1的基础上考虑(详见代码)
阅读全文
摘要:codeforces百题计划第一周(2) 线性dp,记录每个数次出现的次数b[i],dp[i]的状态是处理完前i个数字后的最大值。 转移方程:dp[i]=max(dp[i-1],dp[i-2]*i*b[i]) 注意会爆int
阅读全文
摘要:Problem J. icebound 的商店Time limit: 1000msMemory limit: 65536KBDescriptionicebound 在得到神殿的宝藏之后,开了一家神秘的商店。你来到了商店,发现慷慨的icebound 搞了𝑇𝑇次促销活动。在每次促销活动中,icebo
阅读全文
摘要:关于异或运算,是可以求前缀和的。还有一些异或运算的性质 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⊕
阅读全文
摘要:dp可以按照思想大致分为两种,一种是递推的形式,一种是递归的形式(记忆化搜素)。 比如求这个题因为无法知道从哪个点开始,所以只能用递归的形式,因为有一个回溯的过程。 但是很多题目既可以用递推也可以用递归。 最简单举例:Fibonacci数列 递推形式:f[1]=1;f[2]=1;f[n]=f[n-1
阅读全文
摘要:环形的解决很巧妙 1 #include <iostream> 2 #include <cstring> 3 #include <string> 4 #include <map> 5 #include <set> 6 #include <algorithm> 7 #include <fstream>
阅读全文
摘要:最近一直在写dp,然后别的就啥也不管了(wtcl),很明显的最简单的搜索题竟然卡了,一开始的思路是每一个格子都只能是从四周的格子转化过来的,只要找到四周最大的那个那么dp[i][j]=max+a[i][j],但是无法确定四周的状态,不知道i,j该怎么开始,所以就卡了,竟然不往搜索上去想,emmmm,
阅读全文

浙公网安备 33010602011771号