给你$n$个区间$[l_i,r_i]$,可以选$0$,选出一个数,求选完后为非$0$的要为递增序列的种类。$(n\leq 500,l_i,r_i\leq 10^9)$,不能全部为0
与$CF1295F$,几乎一致。
首先证明线性逆元的求法
设$r=i/p,q=i\%p$
然后离散化,离散化的目的是让每一个数,存在的区间只有一个。不会重复
$dp[i][j]$,表示第$i$个数选在第$j$个区间或者之前的区间里的方案。
$f[i][j]$,表示第$i$个数选在第$j$个区间里的方案
在$len$长的区间里选$m$个不重复数或者选$0$=$C(Len+m,m)$
这里保证$f[i][j]$,第$i$个数选到,$m$=$i..p$旧区间之间,包含$j$个区间。
这次我们先从小到大枚举区间,公式可知使用滚动数组$is\ ok$
代码
1 |
|