UVA 12169 Disgruntled Judge

Posted Travelller

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 12169 Disgruntled Judge相关的知识,希望对你有一定的参考价值。

思路:枚举 a ,通过扩展欧几里得算法利用数列前两个值求 b ,排除非整数解的情况,判断该组 a,b 是否满足剩余序列,(注意必须判断整个序列,不能只判断前几个值,时间够用)。注意对于求出的 b 要模10001。(观察通解和b范围的关系)

 

 1 #include <cstdio>
 2 using namespace std;
 3 
 4 void exgcd(int a,int b,int & d,int & x,int & y){
 5     if (b==0) {x=1;y=0;d=a;return;}
 6     exgcd(b,a%b,d,y,x);
 7     y-=x*(a/b);
 8 }
 9 
10 int main(){
11     
12     int n,h[10005],a,d,b,l;
13     scanf("%d",&n);
14     for(int i=1;i<=n;i++)
15         scanf("%d",&h[i]);
16 
17     for(a=0;a<10001;a++){
18 
19         exgcd(a+1,10001,d,b,l);
20         long long c=h[2]-(long long)a*a*h[1];
21         b=(b*c/d)%10001;
22         if (c%d) continue;
23         int f=1;
24         for (int i=1;i<n;i++){
25             int temp=(((a*h[i]+b)%10001)*a+b)%10001;
26             if (temp!=h[i+1]){
27                 f=0;
28                 break;
29             }
30         }
31         if (f) {
32             for (int i=1;i<=n;i++)
33                 printf("%d\n",(a*h[i]+b)%10001);
34             return 0;
35         }
36     }
37 }

 

以上是关于UVA 12169 Disgruntled Judge的主要内容,如果未能解决你的问题,请参考以下文章

UVa12169 Disgruntled Judge

UVA 12169 Disgruntled Judge 枚举+扩展欧几里得

Disgruntled Judge UVA - 12169(扩展欧几里得应用+暴力)

UVA 12169 不爽的裁判

uva 12169

Ejabberd:如何限制获取 jabber 用户目录(JUD)