首页 > 代码库 > HDU 4569 Special equations(数学推论)
HDU 4569 Special equations(数学推论)
题目
//想不出来,看了解题报告/*题意:给你一个最高幂为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!*/#include<stdio.h>int main(){ int t,n; __int64 a[5],p; scanf("%d",&t); for(int id=1;id<=t;id++) { scanf("%d",&n); for(int i=n;i>=0;i--) { scanf("%I64d",&a[i]); } scanf("%I64d",&p); printf("Case #%d: ",id); __int64 ee=p*p; int flag=0; for(__int64 x=0;x<=p;x++) { __int64 ss=0; __int64 xx=1; for(int i=0;i<=n;i++) { ss+=(a[i]*xx); xx*=x; } if(ss%p==0) { for(__int64 y=x;y<=ee;y+=p) { __int64 sss=0; __int64 xxx=1; for(int ii=0;ii<=n;ii++) { sss+=(a[ii]*xxx); xxx*=y; } if(sss%ee==0) { flag=1; printf("%I64d\n",y); break; } } } if(flag==1)break; } if(flag==0) printf("No solution!\n"); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。