ACM-ICPC World Finals 2012 · Problem D
The Fibonacci word sequence of bit strings is defined as:
F(n) = 0 if n = 0; F(n) = 1 if n = 1; F(n) = F(n − 1) + F(n − 2) if n ≥ 2.
Here + denotes concatenation of strings. The first few elements are:
| n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| F(n) | 0 | 1 | 10 | 101 | 10110 | 10110101 | 1011010110110 | 101101011011010110101 | 1011010110110101101011011010110110 | 1011010110110101101011011010110110101101011011010110101 |
Given a bit pattern p and a number n, how often does p occur in F(n)?
The first line of each test case contains the integer n (0 ≤ n ≤ 100). The second line contains the bit pattern p. The pattern p is nonempty and has a length of at most 100 000 characters.
For each test case, display its case number followed by the number of occurrences of the bit pattern p in F(n). Occurrences may overlap. The number of occurrences will be less than 263.
6 10 7 10 6 01 6 101 96 10110101101101
Case 1: 5 Case 2: 8 Case 3: 4 Case 4: 4 Case 5: 7540113804746346428