题解报告:hdu 1098 Ignatius's puzzle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098
题目中文是这样的:
伊格内修斯在数学上很差,他遇到了一个难题,所以他别无选择,只能上诉埃迪。 这个问题描述:f(x)= 5 * x ^ 13 + 13 * x ^ 5 + k * a * x,输入一个非正整数k(k <10000),找到最小非负整数a, 使得任意的整数x,65 | f(x)如果不存在那个a,就打印“否”。
输入
输入包含多个测试用例。 每个测试用例由非负整数k组成,样例输入中有更多详细信息。
输出
输出包含一个字符串“no”,如果找不到a,或者您应该输出一行包含示例输出中的a.More详细信息。
解题思路:题目的意思就是:给定f(x)=5*x^13+13*x^5+k*a*x,现给出非负整数k ,求取任意x都能使f(x)%65==0成立的最小非负整数a。这道题采用数学归纳法:当x=0时,f(0)=0能够被65整除,即0/65==0,假设f(x)%65==0,则只需证明f(x+1)%65==0,即对于任意的整数x都成立。
下面证明f(x+1)%65==0成立:
因为f(0)=0 能被65整除, 假设(f(1)=18+ka)%65==0,当f(x)能整除65,那么f(x+1)=f(x)+5*[C(13,1)x^12+……+C(13,13)x^0]+13*[C(5,1)x^4……+C(5,5)x^0]+ka=f(x)+5*[C(13,1)x^12+……+C(13,12)x^1]+13*[C(5,1)x^4……+C(5,4)x^1]+18+ka。(二项式展开式)可以发现除(18+ka)这项之外,其他的都能被65整除,所以要使f(x+1)%65==0这个等式成立,只需满足(18+ka)%65==0即可(这是一个必要不充分条件)。
好了,现在问题转化为求(18+ka)%65的那个最小非负整数a,因为k最小取1,即k=1时,a最大能取到65,所以只需枚举a到65即可,若a大于65则输出"no"。
这里证明为什么a只需枚举到65:第一点:当k%65==0时,18+k*a是永远除不尽65的,第二点:k%65!=0时,那么a就从1开始枚举,不断地尝试18+k*a是否能除尽65,找到即止。当a==65,也就是已经找了一个周期了,再找下去也找不到适当的a了,所以a只需枚举到65即可。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k,a;
while(cin>>k){
for(a=;a<=;a++)
if((+k*a)%==){cout<<a<<endl;break;}
if(a>)cout<<"no"<<endl;
}
return ;
}
题解报告:hdu 1098 Ignatius's puzzle的更多相关文章
- HDU 1098 Ignatius's puzzle
http://acm.hdu.edu.cn/showproblem.php?pid=1098 题意 :输入一个K,让你找一个a,使得f(x)=5*x^13+13*x^5+k*a*x这个f(x)%65等 ...
- 数学--数论--HDU 1098 Ignatius's puzzle (费马小定理+打表)
Ignatius's puzzle Problem Description Ignatius is poor at math,he falls across a puzzle problem,so h ...
- HDU - 1098 - Ignatius's puzzle - ax+by=c
http://acm.hdu.edu.cn/showproblem.php?pid=1098 其实一开始猜测只要验证x=1的时候就行了,但是不知道怎么证明. 题解表示用数学归纳法,假设f(x)成立,证 ...
- HDU 1098 Ignatius's puzzle(数学归纳)
以下引用自http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=8466&messageid=2&deep=1 题意以 ...
- HDU 1098 Ignatius's puzzle 费马小定理+扩展欧几里德算法
题目大意: 给定k,找到一个满足的a使任意的x都满足 f(x)=5*x^13+13*x^5+k*a*x 被65整除 推证: f(x) = (5*x^12 + 13 * x^4 + ak) * x 因为 ...
- hdu 1098 Ignatius's puzz
有关数论方面的题要仔细阅读,分析公式. Problem Description Ignatius is poor at math,he falls across a puzzle problem,so ...
- HDOJ 1098 Ignatius's puzzle
Problem Description Ignatius is poor at math,he falls across a puzzle problem,so he has no choice bu ...
- 【HDOJ】1098 Ignatius's puzzle
数学归纳法,得证只需求得使18+ka被64整除的a.且a不超过65. #include <stdio.h> int main() { int i, j, k; while (scanf(& ...
- 数学: HDU1098 Ignatius's puzzle
Ignatius's puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
随机推荐
- [Javascript] Understanding the .constructor property on JavaScript Objects
Constructor functions hold an interesting purpose in JavaScript. Unlike in classical languages, they ...
- 蚂蜂窝VS穷游最世界-自由行类App分析
很多其它内容请关注博客: http://www.china10s.com/blog/? p=150 一.产品概述 体验环境: 机型:iPhone 6 型号:64G版 系统:iOS9.2 蚂蜂窝APP版 ...
- poj2481 Cows
Description Farmer John's cows have discovered that the clover growing along the ridge of the hill ( ...
- mt7620 uboot
我本机装的是64位Ubuntu, SDK 里提供的 buildroot-gcc342 是32位的,无法直接运行,需要先安装 gcc-multilib. sudo apt-get install gcc ...
- js简易美丽的提示框
<span style="font-size:14px;">function showTips(txt, time, status) { var htmlCon = ' ...
- 【solr专题之中的一个】Solr高速入门
一.Solr学习相关资料 1.官方材料 (1)高速入门:http://lucene.apache.org/solr/4_9_0/tutorial.html.以自带的example项目高速介绍发Solr ...
- Ios 项目从头开发 MVVM模式(三)
1.话说,本来想做个聚合查询功能.可是我的重点想研究xmpp聊天功能.所以使用mvvm模式做了全然模式51job主界面的页面. 2.首先给大家看我执行起来的界面. 3.界面非常easy,做这个界面主要 ...
- IDEA 使用方法快捷键
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...
- MVC中从Controller像View层传值
MVC中的Controller不能直接的訪问View层中的控件,那么是怎样的将Controller中值传到View中,经常使用的有4种 ViewData: 是获取或设置视图的字典对象,它里面存放的是键 ...
- 加载之ready和onload
页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页面包含图片等文件在内的所有元素都加载完成. 真不知道这个标题该怎么取,暂时就先凑 ...