首页 > 其他分享 >[ABC283Ex] Min + Sum

[ABC283Ex] Min + Sum

时间:2023-01-03 17:12:35浏览次数:39  
标签:integers Min Sum Sample leq 区间 ABC283Ex ldots 10

Problem Statement

You are given two sequences of integers of length $N$: $A = (A_1, A_2, \ldots, A_N)$ and $B = (B_1, B_2, \ldots, B_N)$.

Print the number of pairs of integers $(l, r)$ that satisfy $1 \leq l \leq r \leq N$ and the following condition.

  • $\min\lbrace A_l, A_{l+1}, \ldots, A_r \rbrace + (B_l + B_{l+1} + \cdots + B_r) \leq S$

Constraints

  • $1 \leq N \leq 2 \times 10^5$
  • $0 \leq S \leq 3 \times 10^{14}$
  • $0 \leq A_i \leq 10^{14}$
  • $0 \leq B_i \leq 10^9$
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

$N$ $S$
$A_1$ $A_2$ $\ldots$ $A_N$
$B_1$ $B_2$ $\ldots$ $B_N$

Output

Print the answer.


Sample Input 1

4 15
9 2 6 5
3 5 8 9

Sample Output 1

6

The following six pairs of integers $(l, r)$ satisfy $1 \leq l \leq r \leq N$ and the condition in the problem statement: $(1, 1)$, $(1, 2)$, $(2, 2)$, $(2, 3)$, $(3, 3)$, and $(4, 4)$.


Sample Input 2

15 100
39 9 36 94 40 26 12 26 28 66 73 85 62 5 20
0 0 7 7 0 5 5 0 7 9 9 4 2 5 2

Sample Output 2

119

两个东西加起来要小于等于 \(S\),太烦了。考虑固定一个,弄另一个。

和这个东西几乎没有办法固定,那只能固定最小值了。

设区间 \([l,r]\) 的最小值为 \(x\),位置在 \(k\)。区间的最小值和位置可以用ST表求得

那么总所周知,所有跨过 \(k\) 的区间的最小值都是 \(x\)。设 \(B\) 的前缀和为 \(s\),那么此时要让 \(s_r-s_{l-1}+x\le S\),并满足 \(l\le k,r>k\)。要数满足要求的 \([l,r]\) 的个数。求得跨越 \(k\) 的区间数量后,递归到 \([l,k-1]\) 和 \([k+1,r]\) 数数即可。

但是这个很难弄,至少几个变量很难 \(O(1)\) 的数出来。但是我们完全可以 \(O(\min(k-l,r-k))\) 的数出来。也就是只遍历分治出来的两个区间中的小区间。这样子的复杂度就可以达到 \(O(nlogn)\)。方法时在较小的那个区间枚举 \(l/r\),然后可以用二分求出有多少个区间符合要求。以枚举 \(l\) 为例,\(l\) 确定之后, \(s_{l-1}\) 和 \(x\) 确定,要求有多少个区间满足 \(s_r\le S-x+s_{l-1}\),直接 lower_bound 就行了。

最终复杂度二分加只遍历小区间的 \(logn\),最终 \(O(nlog^2n)\).

标签:integers,Min,Sum,Sample,leq,区间,ABC283Ex,ldots,10
From: https://www.cnblogs.com/mekoszc/p/17022822.html

相关文章

  • SimpleAdmin:一个基于.NET6/7+Vue3+Fruion+Sqlsugar的通用后台管理系统
    SimpleAdmin⚡️麻雀虽小,五脏俱全!⚡️......
  • java8中常用函数式接口Supplier<T>、Consumer<T>、Function<T,R>、Predicate<T>使用示
    场景函数式接口(FunctionalInterface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。而java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用......
  • Windows系统下,GoLand的Terminal选定Git Bash作为终端,使用其上传代码时,出现中文乱码的
    问题描述按照这位博主博客写的没有完全解决乱码问题博主博客这个博主博客是我后来发现,暂时还没去验证是否可行博主博客解决方案notepad++直接FreeDownload,然后就一直......
  • cereas学习(1)min(10-x)平方
     http://ceres-solver.org/nnls_tutorial.html     structCostFunctor{template<typenameT>booloperator()(constT*constx,T*residual)......
  • Codeforces 1373 D. Maximum Sum on Even Positions 做题记录(单调队列)
    因为只能转一个子数组,很显然转长度为奇数的子数组,对最大化答案是没有意义的(偶数位的数字之和不会变化)。因此只考虑转偶长度的子数组。转动偶数长度的子数组,相当于......
  • 心流|mind flow
    看视频时候瞎写,防止走神springboot不用配置xml因为注解自带扫描约定大于配置自动配置原理springbootdependencies管理springboot应用所有版本依赖解决了依赖冲突问题......
  • 学习笔记:MIn_25筛
    Min_25筛学习笔记叫这个名字是因为这是\(Min\_25\)神犇发明的,主要用到的思想是对于质数和合数分开计算。适用范围对于一个积性函数\(f(x)\)求解:\[\sum_{i=1}^{n......
  • Terminal Seting
    PowerShell配置文件脚本,每次启动之后自动加载notepad$PROFILE在配置文件里添加以下行:oh-my-poshinitpwsh--config'$env:POSH_THEMES_PATH\jandedobbeleer.omp.jso......
  • minidown2
    Markdown学习标题二级标题三级标题字体Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!引用选择狂神说java,走向人生巅峰分割线图片超链接点击跳转到狂......
  • minidown使用
    #Markdown学习#标题##二级标题###三级标题##字体**Hello,World!***Hello,World!****Hello,World!***~~Hello,World!~~Hello,World!##引用>选择狂神说java,走向人生巅......