Given the frequency of each lowercase character f(a), f(b)... f(z) and k. Compute the number of unique strings of length k having sorted characters.
k <= 10^5
Sum(f(i)) <= 10^5
Please provide Hints/Approach to solve this problem.
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Given the frequency of each lowercase character f(a), f(b)... f(z) and k. Compute the number of unique strings of length k having sorted characters.
k <= 10^5
Sum(f(i)) <= 10^5
Please provide Hints/Approach to solve this problem.
Name |
---|
Is that a stars and bars problem!
Let's make a dp state that is (current char, string index) that stores the count. When we move to the next char, we need the sum of the last f(char) items for our new value at a given index. We can calculate these in O(1) by doing a prefix sum on the last row of our dp.
This is $$$O(k)$$$?
What if there are $$$Q \le 10^5$$$ queries of this type with different frequencies and $$$k$$$?
My solution is 26 * O(k) total, yes.
That's significantly harder. I don't have a solution for you