hdoj5793 A Boring Question【找规律】
找出的规律。。。。
1 2
3
2 2
7
3 2
15
4 2
31
5 2
63
1 3
4
2 3
13
3 3
40
4 3
121
5 3
361
然后我们来推个公式:
比如说a2=3a1+1,
我们可以看到
等比是m,
然后凑一下,
1+x=m*x
x=1/(m-1)
上面那个例子就凑成了这个样子,
(a2+1/2)/(a1+1/2)=3
所以首项是:m+1+[1/(m-1)]
第n项是:[m+1+1/(m-1)]*m^(n-1)
答案是:[m+1+1/(m-1)]*m^(n-1)-1/(m-1);
那么答案就是:[m^(n+1)-1]/(m-1);
mdzz,我真蠢。
巨巨加油~
23333333333,神队友去写然后wa了。。。。
除法还要逆元,求逆元有两种方法,一个就是扩展欧几里得,另一个有点特殊,就是费马小定理。
复习一下:
因为取膜不适用与除法,所以当我们要求(a/b)mod p的时候呢,要拐个弯,求一下b的逆元,其实说白了,在算式里,小白理解就是他的倒数嘛。
那么就是b*k=1;k=1/b;
带入(a/b) mod p,就是(a*k)mod p,取膜适用乘法~好,我们来求逆元。
算b的逆元k,k=1/b;我来转换一下,就是直接设成这样的,k=(px+1)/b;然后带到(a*k)mod p,得(a/b)mod p;
那么就是直接求个k就好啦,然而 k=(p*x+1)/b;把 b 一移得 k*b-p*x=1;这种形式的不定方程???怎么求啊,exgcd…
在exgcd中,k,x都是未知数,然后b,-p是常量,跑一跑exgcd就好啦。
然后我再温习一下exgcd吧。
首先给出适用条件,对于这种单纯利用exgcd的题,这个条件也是切入点啊。对于不定整数方程AX+BY=C,若 C mod gcd(A, B)=0,则该方程存在整数解,否则不存在 x , y 整数解。
在我们这个求逆元环节中,A=b,B=-p,很明显在我们本道题里,p是1e9+7是素数,那么gcd就=1,所以满足。
然后exgcd的推导?额。。。接下来会看的很烦,而且没有乘号但是。。我觉得读者在草稿纸上列个小公式会很清楚的。
对于ax+by=gcd(a,b);
我们设一下a>b,在简单直接把b=0时,gcd(a,b)=a.此时,x=1,y=0;
接着,a>b>0,我们这里可以摆两个式子:①:ax1+by1=gcd(a,b);继续,②:bx2+(a mod b)y2=gcd( b , a mod b );第二个式子为何呢?这就是gcd的辗转相除法的算法啊。而且gcd(a,b)=gcd(b,a mod b);
然后我们就能将gcd左边两个等式列个等式:ax1+by1=bx2+(a mod b)y2;额。。。a mod b可以写成?a-(a/b)b对吧,那么等式变成ax1+ by1= bx2+ (a - (a / b) * b)y2=bx2+ay2 - (a / b)by2 ;我们把ax1+ by1=bx2+ay2 - (a / b)by2拎出来,整理一下,写成:ax1+by1=ay2+b(x2-(a/b)y2); 那么很明显我们可以得到,x1=y2,y1=x2-(a/b)y2;
这样我们就得到了求解 x1,y1 的方法:x1,y1 的值基于 x2,y2.
然后跑的不就是gcd辗转相除法嘛,那么最后一个不定方程不就是b==0的时候return,那个时候x=1,y=0啊,正好递归回来给了前面的x1,y1,一直递归到最开始的不定方程的x1,y1.OK,讲完。
还是自己再温习一个前面说的费马小定理,
以下懒得打了,去某篇大牛blog选摘来的…
费马小定理说,对于素数 M 任意不是 M 的倍数的 b,都有:b ^ (M-1) = 1 (mod M).直接拆成:b * b ^ (M-2) = 1 (mod M)。于是:a / b = a / b * (b * b ^ (M-2)) = a * (b ^ (M-2)) (mod M),但是用费马小定理!!!首先的条件!!!!原blog没讲,mdzz。。。
百度百科倾情奉献:费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)。刚好在本道题目一样适用,mod=1e9+7就是质数,那么gcd也就是=1,OK,那么b*k=1这个逆元k=b^(mod-2) = =好像就是这样。
当当当当,看到这边的小伙伴将会得到本道题的最终答案(我知道没有。。。自high一下。。。):
[m^(n+1)-1]*(m-1)^(mod-2)
最终AC代码?自己写吧。。。一个快速幂,,,就好了。。。套个小公式而已,自己动手~丰衣足食~
hdoj5793 A Boring Question【找规律】的更多相关文章
- HDU 5793 A Boring Question (找规律 : 快速幂+乘法逆元)
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- hdu_5793_A Boring Question(打表找规律)
题目链接:hdu_5793_A Boring Question 题意: 自己看吧,说不清楚了. 题解: 打表找规律 #include<cstdio> typedef long long l ...
- HDU 5793 A Boring Question (找规律 : 快速幂+逆元)
A Boring Question 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5793 Description Input The first l ...
- HDU 5793 A Boring Question ——(找规律,快速幂 + 求逆元)
参考博客:http://www.cnblogs.com/Sunshine-tcf/p/5737627.html. 说实话,官方博客的推导公式看不懂...只能按照别人一样打表找规律了...但是打表以后其 ...
- hdu 5793 A Boring Question(2016第六场多校)
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 4861 Couple doubi (数论 or 打表找规律)
Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...
- HDU 4861 Couple doubi(找规律|费马定理)
Couple doubi Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- hdu 2865 Polya计数+(矩阵 or 找规律 求C)
Birthday Toy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- HDU 4349 Xiao Ming's Hope 找规律
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349 Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/ ...
随机推荐
- BubbleGum96 开箱杂谈与软件资源
前言 原创文章,转载引用务必注明链接. 拿到有一段时间了,一直在想写哪些内容.96boards发布以来,吸引了很多眼球.这里我就慢慢随便聊聊,希望能让大家对96boards有更多了解. 开箱 [开箱图 ...
- lua 异常 错误处理 pcall
lua 错误处理 匿名函数 if pcall(function () local s=object.data[1]['type'] end) then return object.data[1]['t ...
- svn 创建分支、切换分支 及 合并分支 操作
关联远程仓库: 右键 --- 点击 ' SVN Checkout...' 生成 打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: ...
- C语言之基本算法34—分解质因数(方法一)
//矩阵基础 /* ================================================================== 题目:输入一个正整数.将其分解为质因式,如:6 ...
- boost::serialization 用基类指针转存派生类(错误多多,一波三折)
boost::serialization 也支持c++的多态,这样我们就能够通过使用基类的指针来转存派生类, 我们接着上一篇( boost::serialization(2)序列化基类 )的样例来看: ...
- JOIN ,LEFT JOIN ,ALL JOIN 等的区别和联系
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...
- jmeter3.0_bodydata中存在中文乱码
jmeter3.0_bodydata中存在中文乱码 1.进入jmeter.properties配置文件 找到#jsyntaxtextarea.font.family=Hack ,并将“#”取消并重启j ...
- 设计模式学习笔记——Mediator中介者模式
将众多对象之间的网状关系转为全部通过一个中间对象间接发生关系,此中间对象为中介者. 看图最直观: 作用不言而喻,就是降低对象之间的耦合度,乃至降低了整个系统的复杂度. 有点象代理模式,更象外观模式:
- 如何去除Office Excel的密码保护?
企图更改Excel文件内容,然而却弹出如下提示: 根据提示,我尝试解除保护表,却要求输入密码: 这就尴尬了=_=密码不是我设定的 问了度娘,找到了解决方案 将Excel文件扩展名更改为rar, 使用压 ...
- java 获取路径
1.利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user ...