HDU 1098 Ignatius's puzzle
来源:互联网 发布:编程速成班 编辑:程序博客网 时间:2024/05/22 04:49
这题刚开始看的时候,的确被吓了一跳,13次方,这也太大了,而且还是任意的x,有点麻烦,但是仔细分析之后,发现有点窍门:
65|f(x),不妨设5*x^13+13*x^5+k*a*x=m*65,于是可以得到:
x*(5*x^12+13*x^4+k*a)=m*65,继续得到:
x*(5*x^12+13*x^4+k*a)/65=m,因为是对于任意的x均成立,所以(5*x^12+13*x^4+k*a)/65=n是成立的,这个式子为什么是成立的呢?首先k*a的值是确定的,所以要想被65整除,那么(5*x^12+13*x^4) mod 65的值应该是确定的,我试了一下,都是18,至于为什么是18我也不知道。所以k*a mod 65的值应该是47,那么就可以轻松解决了。
a的值肯定在1到65之间,因为若a>65,那么a=65*b+c,其中1<c<65,那么a*k%65=c*k%65。
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<vector>using namespace std;int main(){ int k; while(scanf("%d",&k)!=EOF) { bool isok=false; for(int i=1;i<65;i++) { if(i*k%65==47) { printf("%d\n",i); isok=true; break; } } if(!isok) printf("no\n"); } return 0;}
0 0
- hdu 1098 Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- Hdu 1098 - Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- hdu-1098 Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- HDU-1098-Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- hdu 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- HDU 1098 Ignatius's puzzle
- 【问题】Java web项目EL表达式失效
- linux yum命令详解
- 跑马灯。。。Framelayout
- bzoj 1050 题解
- hdu 1501 简单dp (最长公共子串的变形)
- HDU 1098 Ignatius's puzzle
- How do I fix Passenger application startup problem
- 墓地雕像
- 好记性不如烂笔头25-JAVA处理数据库事务(3) - 事务回滚点
- LINK_LIBRARIES: Targets may link only to libraries. CMake is dropping the item.
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
- bzoj 1047 题解
- iOS UI 的坑:不要 remove UITableViewCell 的 contentView
- guice入门学习与实例一