两道杂题

(一)

题意

给定(n)个区间,(m)个关键点,每个区间可以选择选或不选,求将所有关键点覆盖的方案数。

做法

将区间(l)升序,(r)降序;关键点升序
(f_{i,j})为前(i)个区间已经处理完了,前(j)个关键点已经选完了
考虑加入(i+1:l,r)
(forall k,f_{i,k}longrightarrow f_{i+1,k})
((kin[l-1,r))f_{i,l-1sim r-1}longrightarrow f_{i+1,r})
((kin(r,m]),f_{i,k}longrightarrow f_{i+1,k})

(二)

题意

给定长度为(n)的01数组B,全(0)数组A,及(m)个区间,可以将(A)数组的区间变成(1),求A,B两数组最少不相同的位置

做法

区间(l)升序,(r)降序
(f_{i,j})为前(i)个已经考虑过了,((i,j])(1)时,([1,i])的最小贡献
(f_{i-1,j}longrightarrow f_{i,j})
考虑((l,r))
((kin[i-1,r])min{f_{i-1,k}}longrightarrow f_{i,r})
(f_{i-1,i-1}+(b_i=0?-1:1)longrightarrow f_{i,i})

原文地址:https://www.cnblogs.com/Grice/p/12954629.html