一道放在分块训练中的分块打表屑题

看了神NaCly_Fish的题解学了间隔打表(话说这么屑的东西有什么学的必要吗)

内容大多摘自大佬的题解

1,答案可递推,才适合间隔打表

什么叫可递推呢?
假设f[n]为区间[1,n]的答案,那么f[n+1]​应该可以由很短的时间从f[n]推出来。满足这个条件,就可以愉快地间隔打表辣!

像这一题就是可递推的,递推式可以写成这样:

f[n] = f[n-1] + IsLucky(n);

2,间隔打表用法

个人对于区间统计问题的用法是这样的:
在这题中,记录 [1,106],[1,2*106]....[1,1000*106] 区间的答案,容易看出这是一个前缀和的形式。
当我们要计算区间 [l,r]的答案时,只需要计算 [1,r]-[1,l-1] 即可
对于 [1,a] 的答案,可以拆成两部分计算,一部分是已经搞好的前缀和,一部分暴力计算。

3,打表的间隔

根据上面一段,可以发现打表的间隔越小,运行速度就越快。
但是代码过长的话,是没办法提交的。这题单次递推的时间复杂度是Θ(logn) 的,所以打表间隔用 106 就行了。

最新文章

  1. html中的meta详解
  2. nodejs review-04
  3. vs2010设置断点进行调试时不起作用
  4. settings的保存位置
  5. Remove Element
  6. [Google Translation API v2 for Java]
  7. bzoj2431: [HAOI2009]逆序对数列
  8. 判断鼠标从哪个方向进入--jQuery
  9. UIWebView & javascript
  10. <script src="xxx.php"></script>
  11. Android项目中的换肤总结
  12. scrapy 数据存储mysql
  13. 【原创】大数据基础之Zookeeper(3)选举算法
  14. [P3676]小清新数据结构题
  15. 为什么二流程序员都喜欢黑php?
  16. sql 语句的先后执行顺序
  17. Linux驱动之USB(个人)
  18. POD类型
  19. Root :: AOAPC I: Beginning Algorithm Contests (Rujia Liu) Volume 5. Dynamic Programming
  20. windows 10 WSL 安装 Centos

热门文章

  1. cent os 7 与cent os 6区别
  2. cent os 7 与cent os 6 修改主机名称
  3. Linux学习之路(三)Shell脚本初探
  4. Kafka Tuning Recommendations
  5. js常用写法
  6. 三十七、小程序页面跳转传参参数值为url时参数丢失
  7. HTML5网页点击分享到whatsapp
  8. [题解]NOIP2018(普及组)T1标题统计(title)
  9. beanshell断言模版
  10. P2801 教主的魔法(分块入门)