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/ ...
随机推荐
- 使用Python写的第一个网络爬虫程序
今天尝试使用python写一个网络爬虫代码,主要是想訪问某个站点,从中选取感兴趣的信息,并将信息依照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,因为对python不 ...
- 哈理工2015 暑假训练赛 zoj 2976 Light Bulbs
MS Memory Limit:65536KB 64bit IO Format:%lld & %llu SubmitStatusid=14946">Practice ...
- hdu3076ssworld VS DDD 概率dp
//ssworld VS DDD 两个人有血量值 hp1 , hp2 //两人掷骰子得到每一点的概率已知 //ssword赢的概率 //dp[i][j] 表示有第一个人血量为i.第二个人的血量为j ...
- C#语言 循环语句
//Console.Write("请输入关卡数:"); //int a = int.Parse(Console.ReadLine()); //int s = 0; //if (a ...
- DTD笔记
DTD(Document Type Definition)文档类型定义: DTD被用于定义XML文档的结构,作为规范XML文档的一种内容模型,DTD在各领域已形成统一规范的文档. 在XML文档中使用D ...
- Intellij IDEA debug jar包
打成jar包 mvn clean install -Dmaven.test.skip=true jar包保存在target目录下 启动jar Terminal控制台执行下面的命令,启动jar java ...
- 线程安全 对StringBuilder抛出ArrayIndexOutOfBoundsException的探究
对StringBuilder抛出ArrayIndexOutOfBoundsException的探究 - CSDN博客 https://blog.csdn.net/liu_005/article/det ...
- Android 的assets文件资源与raw文件资源读取
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/34504183 res/raw和assets的同 ...
- super究竟是个啥?
引子: 一直以为oc的super跟java中的super是一回事,没有去深究它的本质,直到工作的时候遇到一个并不能按我的理解能解释的情况. 剖析: 在此之前先看一段代码: 有两个类 SuperClas ...
- poj 1724 ROADS 解题报告
题目链接:http://poj.org/problem?id=1724 题目意思:给出一个含有N个点(编号从1~N).R条边的有向图.Bob 有 K 那么多的金钱,需要找一条从顶点1到顶点N的路径(每 ...