翻译
  • 板块CF1682F MCMF?
  • 楼主Raisetsu41
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/8/10 16:47
  • 上次更新2023/10/27 16:05:40
查看原帖
翻译
324362
Raisetsu41楼主2022/8/10 16:47

给你两个整数序列aa和b(bi≠0)b(b_i \neq 0) 且 ∣bi∣≤109|b_i| \leq 10^9 。数组aa保证非降。

一个子序列a[l:r]a[l:r]的贡献定义如下。

  • 如果 sumj=lrbj≠0sum_{j = l}^{r} b_j\neq 0,那么代价就没有(不会出现此类询问,就是说询问中 l,rl, r 保证 sumj=lrbj=0sum_{j = l}^{r} b_j = 0 )。
  • 此外
    • 建一个有r−l+1r-l+1个顶点的二分图,从ll到rr编号,bi<0b_i \lt 0的顶点在左边,bi>0b_i \gt 0的顶点在右边。对于每个i,ji, j,若l≤i,j≤rl\le i, j\le r,bi<0b_i<0且bj>0b_j>0,则建一条从ii到jj的边,容量无限,费用为∣ai−aj∣|a_i-a_j|。
    • 再添加源SS和汇TT。
    • 对于每个ii,若l≤i≤rl\le i\le r且bi<0b_i<0,则建一条从SS到ii的边,费用为00,容量为∣bi∣|b_i|。
    • 对于每个ii,若l≤i≤rl\le i\le r且bi>0b_i>0,则建一条从ii到TT的边,费用为00,容量为∣bi∣|b_i|。
    • a[l:r]a[l:r]的贡献就是从SS到TT的 MCMF\mathrm{MCMF}。

qq次查询,每次给出两个整数ll和rr,求出a[l:r]a[l:r]的贡献对109+710^9 + 7取模的结果。

markdown 源码

给你两个整数序列$a$和$b(b_i \neq 0)$ 且 $|b_i| \leq 10^9$ 。数组$a$保证非降。   

一个子序列$a[l:r]$的贡献定义如下。   

- 如果 $sum_{j = l}^{r} b_j\neq 0$,那么代价就没有(不会出现此类询问,就是说询问中 $l, r$ 保证 $sum_{j = l}^{r} b_j = 0$ )。   
- 此外
  - 建一个有$r-l+1$个顶点的二分图,从$l$到$r$编号,$b_i \lt 0$的顶点在左边,$b_i \gt 0$的顶点在右边。对于每个$i, j$,若$l\le i, j\le r$,$b_i<0$且$b_j>0$,则建一条从$i$到$j$的边,容量无限,费用为$|a_i-a_j|$。
  - 再添加源$S$和汇$T$。
  - 对于每个$i$,若$l\le i\le r$且$b_i<0$,则建一条从$S$到$i$的边,费用为$0$,容量为$|b_i|$。
  - 对于每个$i$,若$l\le i\le r$且$b_i>0$,则建一条从$i$到$T$的边,费用为$0$,容量为$|b_i|$。
  - $a[l:r]$的贡献就是从$S$到$T$的 $\mathrm{MCMF}$。

$q$次查询,每次给出两个整数$l$和$r$,求出$a[l:r]$的贡献对$10^9 + 7$取模的结果。
2022/8/10 16:47
加载中...