string
来源:互联网 发布:卡盟网络 编辑:程序博客网 时间:2024/06/17 16:16
题目大意:
给出一个长度为n, 由小写英文字母组成的字符串S, 求在所有由小写英文字母组成且长度为n 且恰好有k 位与S 不同的字符串中,给定字符串T 按照字典序排在第几位。由于答案可能很大,模10^9 + 7 输出。
Input
第一行为两个整数n; k
第二行一个字符串S
第三行一个字符串T,(T即是k位与S不同的串)
Output
输出一行取模后的答案。
Sample Input
4 1
abcd
bbcd
Sample Output
76
Data Constraint
对于前30% 的数据,n<=5
对于100% 的数据,k<=n<=10^5
分析:
Subtask2: n ≤ 105
考虑由所有与 S 有 k 处不同的字符串组成的一棵 T rie, 只需要在 T rie 上走出 T 这个串,
然后统计每一步排在它之前的子树大小之和就可以了。
k 记录后 n − i + 1 位还需要与 S 不同的位数。对于第 i 位,前 i − 1 位与 T 相同,第 i
位是 c < T[i] 且 c ̸= S[i] 的字符串共有 (
n−i
k−1
)
· (|Σ| − 1)k−1 个,第 i 位是 c = S[i] 且 c < T[i]
的字符串共有 (
n−i
k
)
· (|Σ| − 1)k 个。若 S[i] ̸= T[i], 就将 k 减去 1,一直计算到字符串结束就可
以了。
复杂度 O(n)
0 0
- string
- String
- String
- string
- string
- String
- string
- String
- string
- string
- string
- string
- String
- String
- string
- string +
- String
- String
- 策略模式简介
- 设计模式-简单工厂设计模式
- Java.lang.Character.isDigit()和isLetter()方法
- #Directx12基本的Graphics概念和Direct3D类型(二)
- linux rpm
- string
- 【JZOJ 4811】【NOIP2016提高组 五校联考1】排队
- effective stl 第47条:避免产生“直写型”的代码
- hdu 4790 Just Random 2013 Asia Chengdu Regional Contest [数学]【思维】
- 【回归分析】[3]--回归方程的显著性检验
- Matplotlib中文显示的问题
- 配置魔药(双线程序列动态规划)
- 读书笔记1:《C++沉思录》
- 121-path sum2