现在的位置: 首页 > 综合 > 正文

hdu 3049 Data Processing(扩展欧几里德求逆模)

2014年11月07日 ⁄ 综合 ⁄ 共 1539字 ⁄ 字号 评论关闭

Data Processing

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1066    Accepted Submission(s): 324

Problem Description
Chinachen is a football fanatic, and his favorite football club is Juventus fc. In order to buy a ticket of Juv, he finds a part-time job in Professor Qu’s lab.
And now, Chinachen have received an arduous task——Data Processing.
The data was made up with N positive integer (n1, n2, n3, … ), he may calculate the number ,
you can assume mod N =0. Because the
number is too big to count, so P mod 1000003 is instead. 
Chinachen is puzzled about it, and can’t find a good method to finish the mission, so he asked you to help him.
 

Input
The first line of input is a T, indicating the test cases number.
There are two lines in each case. The first line of the case is an integer N, and N<=40000. The next line include N integer numbers n1,n2,n3… (ni<=N). 
 

Output
For each test case, print a line containing the test case number ( beginning with 1) followed by the P mod 1000003.
 

Sample Input
2 3 1 1 3 4 1 2 1 4
 

Sample Output
Case 1:4 Case 2:6
Hint
Hint: You may use “scanf” to input the data.
 

Source
 

Recommend
gaojie

题意:求那个等式的解...

题解:次方部分用快速幂,然后乘以b对于mod的逆模再取模,注意算出来的x有可能是负数...

#include<stdio.h>
#define mod 1000003
int pow(int x)
{
    long long res=1,c=2;
    while(x)
    {
        if(x&1) res=(res*c)%mod;
        c=(c*c)%mod;
        x>>=1;
    }
    return res%mod;
}
void exgcd(int a,int b,int &d,int &x,int &y)
{
    if(!b){ d=a;  x=1;  y=0; }
    else{ exgcd(b,a%b,d,y,x);  y-=x*(a/b); }
}
int main()
{
    int t,i,d,x,y,n,cas=1;
    long long res;

    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(res=i=0;i<n;i++)
        {
            scanf("%d",&x);
            res=(res+pow(x))%mod;
        }
        exgcd(n,mod,d,x,y);
        printf("Case %d:%I64d\n",cas++,res*(x%mod+mod)%mod);
    }

    return 0;
}

抱歉!评论已关闭.