HDU 4569 Special equations (数学题)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4569


题意:给你一个最高幂为4的一元多项式,让你求出一个x使其结果模p*p为0.

题解:f(x)%(p*p)=0那么一定有f(x)%p=0,f(x)%p=0那么一定有f(x+p)%p=0。

所以我们可以开始从0到p枚举x,当f(x)%p=0,然后再从x到p*p枚举,不过每次都是+p,找到了输出即可,没有的话No solution!


AC代码:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

typedef __int64 LL;
const int N=1;
const LL mod=1000000007LL;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);

LL xi[6],p2,p;
int n;

LL ff(LL x,LL k)
{
    LL sum=0,ans=1;
    for(int i=0;i<=n;i++)
    {
        sum=(sum+xi[i]*ans)%k;
        ans*=x;
    }
    return (sum+k)%k;
}

void xiaohao()
{
    LL i,x,x2;
    for(x=0;x=0;i--)
            scanf("%I64d",&xi[i]);
        scanf("%I64d",&p);
        p2=p*p;
        printf("Case #%d: ",++ca);
        xiaohao();
    }
    return 0;
}


你可能感兴趣的:(----【数论】)