关于区间左右端点的特殊情况处理
查看原帖
关于区间左右端点的特殊情况处理
614725
masonpop楼主2022/7/29 10:39
  • 这里解释一下题解11对子树为空的处理。
  • 以下供需要的oieroier们参考修改,大佬们可自行略去。
  • 题解11预处理左子树为空的情况,却没有枚举右端点,曾让蒟蒻我大惑不解~~
  • 其实,对lenlen的枚举在某种程度上不方便对区间dpdp的理解,这里给出一种不需要对端点处理的写法。
  • 下只给出修改部分,以防被误认为在讨论区放ACAC代码...

forfor循环:(正常区间枚举方式)

for(int len=1;len<=n;len++)//枚举区间长度
	{
		for(int i=1;i+len-1<=n;i++)//枚举起点
		{
			int j=i+len-1;
			for(int k=i;k<j;k++)//枚举根节点 
			{
				//这里是dp转移~~
			}
		} 
	} 

但是,这样是过不了样例的,会出现00.

所以,我们要在预处理部分加上这个:

root[i][i]=i;

这样就避免了因区间问题带来的烦人特判。

2022/7/29 10:39
加载中...