题意:

给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T)

给出T和奇数项xi,输出偶数项xi

分析:

最简单的办法就是直接枚举a、b,看看与输入是否相符。

 1 #include <cstdio>
 2 
 3 const int maxn = 10000 + 5;
 4 const int M = 10001;
 5 int T, x[maxn];
 6 
 7 int main()
 8 {
 9     //freopen("12169in.txt", "r", stdin);
10     
11     scanf("%d", &T);
12     for(int i = 1; i < 2*T; i += 2)
13         scanf("%d", &x[i]);
14     
15     bool ok;
16     for(int a = 0; a < M; ++a)
17     {
18         for(int b = 0; b < M; ++b)
19         {
20             ok = true;
21             for(int i = 2; i <= 2*T; i += 2)
22             {
23                 x[i] = (x[i-1]*a + b) % M;
24                 if(i < 2*T && x[i+1] != (x[i]*a + b) % M)
25                 {
26                     ok = false;
27                     break;
28                 }
29             }
30             if(ok) break;
31         }
32         if(ok) break;
33     }
34     
35     for(int i = 2; i <= 2*T; i += 2)
36         printf("%d\n", x[i]);
37     
38     return 0;
39 } 
代码君

相关文章: