题意

  给出一个长度为n的字符串的sa数组,n<=1e5,问有多少种不同的字符串的sa数组正好是输入的sa数组(字符串每个位置都是小写字母)

分析

  sa数组描述的是字符的大小关系,而不是确切的字符,所以我们考虑位置的逻辑关系

  首先一定有$s[sa[i-1]]<=s[sa[i]]$

  但是对于那些$rank[sa[i-1]+1]>rank[sa[i]+1]$的位置,必须有$s[sa[i-1]]<s[sa[i]]$

  于是我们就知道输入的位置彼此间的大小关系,要么是<=,要么是<

  问题就是求方案数了

  设第一个数是$x_1$,以后每个数比前面数多加$x_i$,小于号位置的$x_i>=1$,小于等于号位置的$x_i>=0$,不妨设小于等于号有m个

  那么利用隔板法有$x_1+x_2+...+x_n<=26+m$

  但是这个不是等号,是小于等于号,我们要把它变成等于号

  做法就是再补一个$x_(n+1)$,把不等号变成等号

  最后的结果就是$C_{26+m}^n$

最新文章

  1. tornado和django的结合使用 tornado Server for django WSGI APP
  2. 【BZOJ 2154】Crash的数字表格
  3. iframe的用法
  4. Android UI系列-----EditText和AutoCompleteTextView
  5. Jquery如何获得&lt;iframe&gt;嵌套页面中的元素
  6. HTML兼容性设置
  7. MVC Razor模板引擎输出HTML或者生产HTML文件
  8. RxJava+Retrofit+MVP构建的App——聚合资讯
  9. MVC缓存的使用
  10. asp.net php asp jsp 301重定向的代码
  11. UVAlive 6833 Miscalculation 字符串处理
  12. android应用集成google登录
  13. Golang丰富的I/O 二----cgo版Hello World
  14. eclipse打开package explorer视图
  15. 浅谈深度优先和广度优先(scrapy-redis)
  16. C#中一种替换switch语句更优雅的写法
  17. MySQL索引的维护与优化——查找重复及冗余索引
  18. BZOJ 2434 阿狸的打字机(fail树)
  19. Android-AndroidManifest.xml默认启动的Activity(探索篇01)
  20. 润乾V4的最小化部署方式

热门文章

  1. sql查询作业执行时间
  2. Mybatis的Service循环调用错误
  3. 洛谷 P1618 三连击(升级版)
  4. (译)IOS block编程指南 1 介绍
  5. Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法
  6. python的特殊数字类型(无穷大、无穷小等)
  7. rfcn讲解博客
  8. 数组对象分类个数js
  9. 【洛谷日报#75】浅谈C++指针
  10. Centos 7 编译nginx 1.14.0