uva 12169

 1     
 2         /* 不爽的裁判_________________________________________________________________________________
 3           
 4             #include <iostream> 
 5             #include <map> 
 6             #include <cmath>
 7             #include <vector>
 8             #include <cstdio>
 9             #include <string>
10             #include <cstring> 
11             #include <algorithm>    
12             using namespace std; 
13             #define fir first
14             #define sec second
15             #define pb(x) push_back(x) 
16             #define mem(A, X) memset(A, X, sizeof A)
17             #define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
18             #define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i)) 
19             #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e) 
20             typedef long long LL;   
21             typedef unsigned long long ull;
22             typedef pair<long,long>  pll;     
23             
24             
25             LL T,n;
26             const int mod=1e9+7; 
27             const int maxn=1e5+10;
28             const int maxt=200+10;
29             const int num=10001;
30             int x[maxt];    
31             int main()
32             {
33                  freopen("in.txt","r",stdin); 
34                  //while(cin>>n)
35                  while(cin>>T)
36                  { 
37                      REP(i,1,T)
38                      { 
39                          cin>>x[2*i-1]; 
40                      }  
41                      REP(a,0,num-1)
42                      {
43                          int flag;
44                          REP(b,0,num-1)
45                          {
46                              flag=1;
47                              REP(i,2,2*T)
48                              {
49                                  int t=( a * x[i-1] + b ) % num;
50                                  if(i&1 && x[i]!=t ) { flag=0; break; }   //校验奇数位置
51                                  else {x[i]=t;} 
52                              }
53                              if(flag) {break;}
54                          } 
55                          if(flag) break;
56                      }   
57                      REP(i,1,T)
58                      { 
59                          
60                          cout<<x[2*i]<<endl;
61                      } 
62                  }
63               return 0;
64             }
65 
66            /*
67               note    :  考虑解的所有可能情况,先这样直接进行分析一次.
68               debug   :  思路是对的,没有想到的是  三重循环,中间跳出循环的时候只跳出了第二重,第三重循环引发了值的改变.
69               optimize:
70             */ 
原文地址:https://www.cnblogs.com/paulzjt/p/6052670.html