随笔分类 - --------序列形dp
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试...
阅读全文
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试...
阅读全文
摘要:“我有个愿望,我希望穿越一切找到你。”这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)):1、我可以走到(x+1,y)2、我可以走到(x,y+1)3、我可以走到...
阅读全文
摘要:“我有个愿望,我希望穿越一切找到你。”这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)):1、我可以走到(x+1,y)2、我可以走到(x,y+1)3、我可以走到...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:给你2个没有重复元素的序列A,B,求LCS我们将映射A[i]->i用在B上,对B求LIS即可,若A中没有B[i]直接跳过#include#include#include#includeusing namespace std;map s;int f[300010];in...
阅读全文
摘要:给你2个没有重复元素的序列A,B,求LCS我们将映射A[i]->i用在B上,对B求LIS即可,若A中没有B[i]直接跳过#include#include#include#includeusing namespace std;map s;int f[300010];in...
阅读全文
摘要:有两种字符串S,T。长度分别为n,m。现在需要在S里面有序地选出k个子串,且在T中出现的顺序与这k个子串的顺序相同。问这k个子串最大长度之和,n,m#include#includeusing namespace std;int n,m,K,f[1010][1010][...
阅读全文
摘要:有两种字符串S,T。长度分别为n,m。现在需要在S里面有序地选出k个子串,且在T中出现的顺序与这k个子串的顺序相同。问这k个子串最大长度之和,n,m#include#includeusing namespace std;int n,m,K,f[1010][1010][...
阅读全文
摘要:题意:给你一颗带权二叉树,求问要修改几次可以将其变成二叉搜索树?我们先跑出原树的中序遍历,那么我们问题变成如何用最少的次数将序列变成严格上升显然我们可以跑出LIS,那么n-LIS就是答案,但是这样做是有问题的,比如1,4,2,3,LIS=3但是显然我们只修改一次是不行...
阅读全文
摘要:题意:给你一颗带权二叉树,求问要修改几次可以将其变成二叉搜索树?我们先跑出原树的中序遍历,那么我们问题变成如何用最少的次数将序列变成严格上升显然我们可以跑出LIS,那么n-LIS就是答案,但是这样做是有问题的,比如1,4,2,3,LIS=3但是显然我们只修改一次是不行...
阅读全文
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n...
阅读全文
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n...
阅读全文
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][...
阅读全文
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][...
阅读全文
摘要:一个文本压缩后由若干个单元组成,每个单元由3部分组成:1.正文(小写字母组成的字符串)2.若干个”*”,表示正文的又重复了几次3.单元的结尾符号”$”,显然,对于同一文本,压缩后的表示方法不唯一,但是为了方便,我们要求你采用压缩后字符串最短的压缩方法,如果有多种压缩方...
阅读全文
摘要:一个文本压缩后由若干个单元组成,每个单元由3部分组成:1.正文(小写字母组成的字符串)2.若干个”*”,表示正文的又重复了几次3.单元的结尾符号”$”,显然,对于同一文本,压缩后的表示方法不唯一,但是为了方便,我们要求你采用压缩后字符串最短的压缩方法,如果有多种压缩方...
阅读全文
摘要:两个等长的由大写英文字母构成的字符串a和b,从a中选择连续子串x,从b中选出连续子串y。定义函数f(x,y)为满足条件xi=yi(1j 情况是对称的,所以贡献是(n-i+1)*(n-j+1)所以对于a,我们维护一个前缀和sf[i][c]表示所有j满足j=i且a[j]=...
阅读全文
摘要:两个等长的由大写英文字母构成的字符串a和b,从a中选择连续子串x,从b中选出连续子串y。定义函数f(x,y)为满足条件xi=yi(1j 情况是对称的,所以贡献是(n-i+1)*(n-j+1)所以对于a,我们维护一个前缀和sf[i][c]表示所有j满足j=i且a[j]=...
阅读全文