Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

如果c.d特别大 就超时

Posted by sunmoonstar at 2006-12-08 15:07:50 on Problem 1061
In Reply To:我的TL程序 Posted by:jackie_wyx at 2006-12-08 15:03:10
> 就是选最小正整数那里不是太会
> #include <stdio.h>
> 
> struct node
> {
>   int d,x,y;
> };
> 
> struct node gcd(int a,int b)
> {
>   struct node c;
>   int e;
>   
>   if(b==0)
>   {
>     c.d=a;
>     c.x=1;
>     c.y=0;
>     return(c);
>   }
>   else 
>   {
>     c=gcd(b,a%b);
>     e=c.x;
>     c.x=c.y;
>     c.y=e-(a/b)*c.y;
>     return(c);
>   }
> }
> 
> main()
> {
>   int i,m,n,a,b,l,x,min;
>   struct node c;
> 
>   scanf("%d%d%d%d%d",&a,&b,&m,&n,&l);
>   if(m>n) c=gcd(m-n,l);
>   else c=gcd(m-n+l,l);
>   if((b-a)%(c.d)==0)
>   {
>     x=(c.x*((b-a)/c.d))% l;
>     if(x<0) x+=l;
>     min=x;
>     for(i=0;i<c.d;i++)
>     { 
>       x=(x+i*(l/c.d))%l;
>       if(x<0) x+=l;
>       if(x<min) min=x;
>     }
>     printf("%d\n",min);
>   }
>   else printf("Impossible\n");
> 
>   return(0);
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator