A Simple Math Problem |
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 79 Accepted Submission(s): 65 |
Problem Description
Lele now is thinking about a simple function f(x).
If x < 10 f(x) = x. If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10); And ai(0<=i<=9) can only be 0 or 1 . Now, I will give a0 ~ a9 and two positive integers k and m ,and could you help Lele to caculate f(k)%m. |
Input
The problem contains mutiple test cases.Please process to the end of file.
In each case, there will be two lines. In the first line , there are two positive integers k and m. ( k<2*10^9 , m < 10^5 ) In the second line , there are ten integers represent a0 ~ a9. |
Output
For each case, output f(k) % m in one line. |
Sample Input
10 9999 1 1 1 1 1 1 1 1 1 1 20 500 1 0 1 0 1 0 1 0 1 0 |
Sample Output
45 104 |
Author
题目大意:
按照公式算出答案,题目给出的是 a0 ..... a9
思路:
这里需要构造能够表示这个递推关系的矩阵,之前在 dp 那里做到过两个这种题目,矩阵一般都是和 dp 在一起的吧,用来加速运算这种。
这个矩阵构造起来也很简单。
f n a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 ^ n-9 9
f n-1 1 0 0 0 0 0 0 0 0 0 8
f n-2 0
1 0 0 0 0 0 0 0 0 7
f n-3 = 0
0 1 0 0 0 0 0 0 0 6
..
0 0 0 1 0 0 0 0 0 0 * 5
f n-9
0 0 0 0 1 0 0 0 0 0 4
0 0 0 0 0 1 0 0 0 0 3
0 0 0 0 0 0 1 0 0 0 2
0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 1 0 0
AC代码:
|
HDU 1757 A Simple Math Problem
最新推荐文章于 2019-02-24 14:32:25 发布