首页 > 其他分享 >区间整除

区间整除

时间:2024-11-13 19:21:40浏览次数:1  
标签:right log dfrac rfloor 区间 整除

Q6.1.3.3 区间整除

题意:区间加,区间整除,区间和,区间最小值.

Sol 1

区间整除时若当前区间 \(\max=\min\),改成区间覆盖,否则继续

复杂度玄学

Sol 2

有一波性质分析:

发现 \(\left\lfloor\dfrac xk\right\rfloor-\left\lfloor\dfrac{x-1}k\right\rfloor\le1\)

稍微推广一下:\(x-1-\left\lfloor\dfrac{x-1}k\right\rfloor\le x-\left\lfloor\dfrac xk\right\rfloor\)

即记 \(f(x)=x-\left\lfloor\dfrac xk\right\rfloor\),则在整点上有 \(f(x)\) 递增

那么在整除时若 \(f(\max)=f(\min)\),则这个区间要减去的数是相同的

于是转化为了区间加

感性理解复杂度:记 \(a\) 为值域,对每个点,整除时最多暴力访问 \(\log a\) 次,而一次区间加相当于重置这个 \(\log\)。最多一共重置 \(m\log n\) 次,所以 \(m\log n\log a\)

标签:right,log,dfrac,rfloor,区间,整除
From: https://www.cnblogs.com/laijinyi/p/18544594

相关文章

  • P8868 [NOIP2022] 比赛(线段树维护区间历史和)
    题意给定排列\(a,b\),\(q\)次询问\(l,r\),你需要求出\(\sum_{l\lel'\ler'\ler}(\max_{i=l'}^{r'}a_i)(\max_{i=l'}^{r'}b_i)\)对\(2^{64}\)取模的值。\(n,q\le2.5\times10^5\)分析根据经典套路,按\(r\)扫描线,维护两个单调栈,那么加入一个数就相当于进行若干段区......
  • 区间$dp$
    区间\(dp\)特点,可由小区间加上一堆运算推到大区间(板子)或者一个序列,从中间扣掉一个/一堆点,扣掉后短处会连上,这种题也常用区间\(dp\)。(消除木块,恐狼后卫,最大收益,最小代价都是这种题),它们常要考虑删掉这段区间/点会产生的贡献,再加上外面的区间和,有时候还会开一些辅助数组或多开一个维......
  • 关于分治法左右区间单调遍历应该如何设计
    阅读以下文章,首先至少要求通过一道分治法的题目或听过一道该类型的讲解。对于分治的题目,想必你应该知道,通常我们是对于一个区间拆分两个部分,而最小子问题通常是只包含一个元素的区间数组。为了后续方便处理更大范围的区间,通常在处理该小区间后,我们会将其区间内元素排序,例......
  • 56. 合并区间
    题目链接解题思路合并区间,肯定要按照第一维度排序。然后依次处理每个区间。假设现在来到i区间[a,b],i之前的区间已经处理好,并且与i区间不重叠。i+1的区间是[c,d],因为已经按照第一维度排序,所以能够得到a>=c,那么,b和c的关系如何?b<c:说明i区间与i+1区间不重叠,直接得到......
  • Mysql使用between and查询时间区间不包括右边界问题
    结论:Mysql数据库中的betweenand查询是包含右边界的,但如果字段是datetime类,数据格式则会被转换为:2018-10-0100:00:00,那么2018-10-01当天的数据就查询不到,所以就会出现不包含右边界的这种问题,而数据类型本身是date则不会出现上述问题。举例:在Mysql中有如下select语句:SELECT*FR......
  • [题目总结 #1] 静态序列区间查询问题(未完)
    [题目总结#1]静态序列区间查询问题前言不久前遇到一批这种题,我发现自己思路很单一,只想着莫队、分块、线段树,但是其实可能有其他巧妙的做法,而且就算是用分块、线段树维护的东西也有我没想到的。总体来说,在这种题上,自己的思维太固化、自己太依赖思维惯性,又不熟悉各种套路。于是......
  • 树状数组--区间信息维护
    树状数组树状数组的学习可以看b站董晓算法的讲解(极力推荐)。董老师树状数组博客oiwiki大概的思路无论是往点修往后跳还是求前缀和往前跳都是一次跳2k,k为x二进制最低有效位。代码模版template<typenameT>structFenwick{intn;vector<T>tr;Fenw......
  • 7.10 已知一组观测数据,如表中7.17.excel(表中第一列为x的值,第二列为y的值)。试用插值方
    importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.interpolateimportinterp1d,PchipInterpolator,CubicSplinefromscipy.optimizeimportcurve_fitfromscipy.statsimportnormfile_path='7.17.xlsx'data=pd.rea......
  • P6879 [JOI 2020 Final] スタンプラリー 3 [区间DP]
    P6879[JOI2020Final]スタンプラリー3Solution首先这是一道最优值问题,再根据数据范围\(n\le200\),那么正解可能会是\(O(n^3)\)的DP。根据题意,我们发现主角走过的雕像一定是个区间,可以考虑区间DP。想一想我们需要知道什么,然后把它放到DP状态里面。我们需要知道......
  • 【K倍区间】
    题目思路 是k的倍数  &&     && 代码#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;typedeflonglongll;lls[N],cnt[N];intmain(){intn,k;cin>>n>>k;for(inti=1;i<=n;i++){......