省选模拟65

A. 容器

直接区间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)\)

B. 果树

同种颜色点很少,枚举其中两点x y,令dep[x]>dep[y]
分类讨论不合法的点对分布在哪

  1. y是x的祖先。(y除x方向子树)和(x子树)
  2. 非祖孙关系。(x子树)和(y子树)

把路径a->b,看成点对(a,b),坐标系二维表示,用dfs序找出区间
那么对于x y来说不合法的路径就是一些矩形。
对于所有x y的矩形求并,就是所有不合法路径。
取反后,(i,i)这种点对单算,其他/2。
扫描线+线段树求矩形面积并即可。

C. 流浪

答案等同于每个点被经过>=K次的路径数之和
设当前考虑点为(x,y)
路径拆成三个部分(都不经过障碍):

  1. \(A[i]:(0,0)-i->(x,y)\),第一次到达。
  2. \(C[i]:(x,y)-i->(x,y)\),自环且内部无自身自环
  3. \(B[i]:(x,y)-i->(?,?)\),随便走

A B C都可以DP得到,然后对C做背包DP,处理出i步走K-1个自环的方案数。
三个部分卷在一起就是答案。

posted @ 2020-04-08 17:28  hzoi_yzh  阅读(100)  评论(0编辑  收藏  举报