F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Recursive Sequence

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 403    Accepted Submission(s): 106


Problem Description
Given two integers N and M, we define a recursive sequence g[i] (indexed from 0) as follows:
(1) If 0 <= i < M, then g[i] = a[i]
(2) If i >= M, then g[i] = b[0]*g[i-M] + b[1]*g[i-M+1] + ... + b[M-1]*g[i-1]
Now your task is very simple: Try to find g[N] mod 1,000,000,003.
 

Input
The first line of input is an integer T (1 <= T <= 10), which is the number of test cases. T cases follow.
For each case, the first line are two integers M(1 <= M <= 1000) and N(M <= N <= 1,000,000,000). Two lines followed, each of which contains exactly M integers. The first M integers are a[0], a[1], ..., a[M-1], and the last M integers are b[0], b[1], ..., b[M-1], where 0 <= a[i], b[i] < 1,000,000,003.
 

Output
For each case, output a single line contain g[N] mod 1,000,000,003.
 

Sample Input
2 1 5 1 2 2 7 0 1 1 1
 

Sample Output
32 13 Hint Sample #0: You can easily find that g[i] = 2^i, so g[5] = 32 Sample #1: g[i] is the i-th fibonacci number, so g[6] = 13
 

Author
wywcgs @ HIT & XMU
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-11 21:08:30, Gzip enabled