HDU 1098解题报告
来源:互联网 发布:凯聪智云软件下载 编辑:程序博客网 时间:2024/05/01 17:31
Ignatius's puzzle
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6462 Accepted Submission(s): 4481
Total Submission(s): 6462 Accepted Submission(s): 4481
Problem Description
Ignatius is poor at math,he falls across a puzzle problem,so he has no choice but to appeal to Eddy. this problem describes that:f(x)=5*x^13+13*x^5+k*a*x,input a nonegative integer k(k<10000),to find the minimal nonegative integer a,make the arbitrary integer x ,65|f(x)if
no exists that a,then print "no".
no exists that a,then print "no".
Input
The input contains several test cases. Each test case consists of a nonegative integer k, More details in the Sample Input.
Output
The output contains a string "no",if you can't find a,or you should output a line contains the a.More details in the Sample Output.
Sample Input
111009999
Sample Output
22no43
Author
eddy
Recommend
We have carefully selected several similar problems for you: 1071 1014 1052 1049 1082
解题注意
这道题属于一道简单的数论题,涉及到扩展欧几里德算法。这道题中的一个关键点是保证函数f(x)=5*x^13+13*x^5+k*a*x这个函数对于任意整数的函数值都能够被65整除。这就让我想到了数学归纳法,以前在高中学数学归纳法时做过类似的证明题,证明一个式子对于任意正整数(正整数可以推广到整数范围)都可以被某个数整除。假设当f(x)成立,即5x^13+13x^5+k*ax=65*m1。则f(x+1)成立,即5(x+1)^13+13(x+1)^5+k*a(x+1)=65*m2。然后用二项式定理展开可得,5x^13+13x^5+k*ax+5(C(13,1)x^12+C(13,2)x^11+……C(13,12)x+1)+13(C(5,1)x^4+……C(5,4)x+1)+ka=
65m1+5(C(13,1)x^12+C(13,2)x^11+……C(13,12)x)+13(C(5,1)x^4+……C(5,4)x)+18+ka.由于f(x+1)要能够被65整除,所以18+ka=65m.即要保证65m-ka=18成立。化成扩展欧几里德算法中的形式为65x+(-k)y=18。所以当gcd(65,-k)是18的约数时,则有解,否则无解。当有解时,要保证解的值为正整数,而且最小。
参考代码
#include<cstdio>int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b);}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 k; while(~scanf("%d",&k)) { int shu=0,x=0,y=0; if(18%gcd(65,-k)!=0) printf("no\n"); else { exgcd(65,-k,shu,x,y); x=x*18/shu,y=y*18/shu; if(y<0) { while(y<0) y-=65/shu; } else { while(y>=0) y-=65/shu; y+=65/shu; } printf("%d\n",y); } }}
0 0
- HDU 1098解题报告
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- HDU:2050解题报告
- hdu 4001解题报告
- hdu 1005解题报告
- HDU解题报告--1003
- HDU解题报告--1004
- HDU解题报告--1005
- HDU 1005 解题报告
- js数组的操作
- 在VM中安装Android4.4连接小米手环 之 联网设置
- 并发模式(三)——生产者-消费模式
- hdu 5057 Argestes and Sequence
- 静态类型检查与继承
- HDU 1098解题报告
- 在VM中安装Android4.4连接小米手机 之 安装小米手环APP
- ZOJ——3464 Rugby Football
- 字符串和数字转换
- H265 SAO 技术
- 程序员求职之道(《程序员面试笔试宝典》)
- 【Unity3D】 KeyCode 键码
- poj - 1170 - Shopping Offers(状态压缩dp)
- 在VM中安装Android4.4连接小米手环 之 设置蓝牙