题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2038

分析:莫队算法

莫队算法是一种思想……

处理问题:不带修改的区间询问

使用要求:[l-1,r] [l,r-1]的结果可由[l,r]的答案在O(1)或O(logn)的时间内推出

具体步骤:

  1、对整个区间轴分成根号n块

  2、以l所在的块的编号为第一关键字,r为第二关键字给所有询问排序方便处理

  3、对于每个块内的询问单独处理

    ①对于当前块里的第一个询问暴力求解

    ②剩下的在第一个询问基础上递推得到

那么对于本题,只要说明如何从[l,r]的答案推到[l-1,r] [l,r-1]就行了

注意题目最后求的是概率,那么我们不妨推种类,概率最后除以总数就行了

假设对于某个块,第一个询问[l,r]我们已经解决,且完成了这个询问的col[]数组(col[i]表示第i种颜色出现的次数)

那么考虑区间[l-1,r],假设第i-1位的颜色为k,那么ans[l-1,r]=ans[l,r]+添加一个颜色k多的种类

那么这个东西是多少呢,其实就是C(col[k]+1,2)-C(col[k],2)=col[k]啦

对于[l,r-1]就是减了啊……完美解决了……

总结:对于那成堆的无修改的区间问题,可以先考虑莫队算法啦……即使数据结构可以破,但是绝壁没莫队算法好!(其实是代码短~\(≧▽≦)/~啦啦啦)

最新文章

  1. 【webapp的优化整理】要做移动前端优化的朋友进来看看吧
  2. Linux学习笔记(5)-hello world
  3. 浅谈Json和jsonp
  4. 【心得】怪异的JS的Date函数
  5. 处理海量数据的高级排序之——堆排序(C++)
  6. java中获取ServletContext常见方法
  7. sbt设置
  8. orientationchange不管用啊
  9. 关于duilib中的list的扩展探索
  10. DelphiXE8新建AVD
  11. java解析JSON (使用net.sf.json)
  12. JS window对象的top、parent、opener含义介绍 以及防止网页被嵌入框架的代码
  13. map和set的原理
  14. 《python for data analysis》第五章,pandas的基本使用
  15. Appcan开发笔记:导出Excel文件
  16. 文献导读 | A Pan-Cancer Analysis of Enhancer Expression in Nearly 9000 Patient Samples
  17. Android------------------的资源文件的学习
  18. 基于springMVC的RESTful服务实现
  19. 映射函数map
  20. Java类中的各种成员的加载顺序

热门文章

  1. db2 常用命令(二)
  2. 简单好用的日志管理工具 Logrotate
  3. [转]JQuery Ajax 在asp.net中使用总结
  4. selenium操作滚动条的几种方式
  5. python中的getattr函数
  6. 《至少有那天》——IU
  7. Unity手机平台播放影片
  8. Netty5-应答服务器
  9. 33Mybatis------Mapper的编写
  10. Microsoft Visual Studio 下载转帖