首页 > 其他分享 >2022牛客OI赛前集训营-提高组(第一场) 奇怪的函数 根号很好用

2022牛客OI赛前集训营-提高组(第一场) 奇怪的函数 根号很好用

时间:2022-10-06 14:55:26浏览次数:58  
标签:分段 OI 复杂度 牛客 集训营 根号 函数

奇怪的函数

考虑暴力,每次查询\(O(n)\)扫所有操作,修改\(O(1)\)

这启发我们平衡复杂度,考虑分块。

观察题目性质,可以发现,经过若干次操作后得到的结果一定是一个关于\(x\)的分段函数,图像分为三段,且第一段和第三段斜率为0,中间斜率为1。那么只需要简单地记下拐点的坐标就可以表示这个函数。

简单分类讨论一下,可以线性处理出我们要的分段函数。

那么就很简单了,分\(B\)块维护分段函数,每次修改暴力重构整个块,查询遍历每个块,复杂度为\(O(q(B+\frac{n}{B}))\)取\(B=\sqrt{n}\)可得\(O(q\sqrt{n})\)。

相比线段树的合并分段函数,显然这样比较好写。

标签:分段,OI,复杂度,牛客,集训营,根号,函数
From: https://www.cnblogs.com/DCH233/p/16757614.html

相关文章

  • join
    连接是组合来自两个或多个表、视图或物化视图的行的查询。FROM只要查询的子句中出现多个表,Oracle数据库就会执行连接。查询的选择列表可以从任何这些表中选择任何列。如果......
  • 2022牛客OI赛前集训营-提高组(第一场)
    教练给我们打的离线(数据分治忘删,多solve一次,明明复杂度O(n^3)偏偏不想压空间敬重桥廊不挂的话,70+100+50+50,挂了是70+100+0+0/cy懒得写题解。。。......
  • NOIP2015 T3 乱作题解
    题目看起来好像不是很难啊,为什么我做不出来呢;1.暴力枚举枚举x,y,z的值,再判断是否符合条件;时间复杂度:\(\mathcal{O}(n^3)\)期望得分:\(20pts\)\(Code\):#includ......
  • Android 小项目之--解析如何获取SDCard 内存
    1、讲述Environment类。2、讲述StatFs类。3、完整例子读取SDCard内存1、讲述Environment类Environment是一个提供访问环境变量的类。Environment 包含常量:​​MED......
  • android之定时器AlarmManager .
     果图:      当我们点击定时时,会弹出一个时间选择器,选定好时间之后,系统便可以进行定时了。注意,这里可不是会真的响铃,我们在定时的任务里并没有......
  • Android中的JSON详细总结
    1、JSON(JavaScriptObjectNotation)定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得......
  • Android开发之PreferenceActivity .
    今天我们来讲PreferenceActivity的使用。我们先来认识一下它,看看它长什么样?呵呵,截图如下:看到没?这就是PreferenceActivity.看起来蛮眼熟的,在哪见过。呵呵,对,在我们得模拟器“......
  • Android软件开发之盘点自定义View界面大合集
    今天我用自己写的一个Demo和大家详细介绍一个Android中自定义View中的使用与绘制技巧。1.自定义view绘制字符串            相信在实际开发过程中必然很多......
  • Android 设置主题实现点击波纹效果
    开头先说说大家都知道的MaterialDesign。这里推荐​​大苞米​​的系列博客,介绍的很全面。MaterialDesign:MaterialDesign是Google推出的一个全新的设计语言,它的特点就是......
  • Android中 android:gravity 和 android:layout_gravity的区别
    在配置xml布局时,经常用到 android:gravity 和 android:layout_gravity这两个属性,这里记录一下他们的区别。1.android:gravity android:gravity常用于控制view的内部......