题意:
给出四个数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 }