标签:dep math 直接 答案 表示 区间dp 部分 模拟 lin
直接区间DP复杂度很高
限制相同,借鉴插头dp思路从左向右保存插头。
定义\(f(i,j,k)\)为i点存在j个插头还有k个可建插头,k限制了总数。
枚举i为多少插头(区间)的右端点,i+1新增多少插头。
形式为\(f(i,j,k)\times \binom{k}{a}\binom{j}{b} -> f(i+1,j+a-b,k-a)\)
同种颜色点很少,枚举其中两点x y,令dep[x]>dep[y]
分类讨论不合法的点对分布在哪
把路径a->b,看成点对(a,b),坐标系二维表示,用dfs序找出区间
那么对于x y来说不合法的路径就是一些矩形。
对于所有x y的矩形求并,就是所有不合法路径。
取反后,(i,i)这种点对单算,其他/2。
扫描线+线段树求矩形面积并即可。
答案等同于每个点被经过>=K次的路径数之和
设当前考虑点为(x,y)
路径拆成三个部分(都不经过障碍):
A B C都可以DP得到,然后对C做背包DP,处理出i步走K-1个自环的方案数。
三个部分卷在一起就是答案。
标签:dep math 直接 答案 表示 区间dp 部分 模拟 lin
原文地址:https://www.cnblogs.com/hzoi-yzh/p/12661306.html