
数论
文章平均质量分 69
LBJHan
经历过就是财富
展开
-
欧几里得算法(辗转相除)及其扩展证明
首先欧几里得是谁???学数学的人一定不陌生,一位为数学界做出重大贡献的人;(以下摘自百度百科)欧几里得(希腊文:Ευκλειδης ,公元前330年—公元前275年),古希腊数学家。他活跃于托勒密一世(公元前364年-公元前283年)时期的亚历山大里亚,被称为“几何之父”,他最著名的著作《几何原本》是欧洲数学的基础,提出五大公设,欧几里得几何,被广泛的认为是历史上最成功的教科书。欧几里得也原创 2017-09-23 12:55:57 · 641 阅读 · 0 评论 -
Binary Tree HDU - 5573
Binary Tree题目链接:HDU - 5573 题意:一个无穷大的完全二叉树,每个节点的值由上到下,由左到右依次为1, 2, 3, 4, 5, ......;现在给出一个数n,要求走k步,每到达一个节点可以选择加这个点的值或者减这个点的值,初始值为0,第一步永远在根节点1,且只能向下走,最终停下后得到的值恰好等于n;思路:对于这个二叉树来说,最左侧是2^0, 2^1, 2^2, ...原创 2018-09-04 10:59:11 · 267 阅读 · 0 评论 -
LCM Walk HDU - 5584
LCM Walk题目链接:HDU - 5584 题意:一只青蛙在无穷大的棋盘上跳跃,规则如下:青蛙当前位置是(x, y);那么下一步,青蛙只能跳到(x+lcm(x, y), y)或(x, y+lcm(x, y));题目给出一个终点(ex, ey),问青蛙的起点有几种情况;思路:假设青蛙由(x, y)跳到了(x+lcm(x, y) = ex, y = ey);因为lcm(x, y)...原创 2018-09-04 09:27:31 · 250 阅读 · 0 评论 -
Simple Math Problem HDU - 5974
Simple Math Problem 题目链接:HDU - 5974题意:已知a, b,求x, y, 使得x, y,满足x+y=a,lcm(x, y)=b(lcm表示最小公倍数);联立上述两式得:x^2-a*x+b*gcd(x, y)=0;令gcd(x, y)=k;则有x'*k+y'*k=a (x'+y')*k=a x'+y'=a/k;而且:x*y/k=b ...原创 2018-07-21 19:54:28 · 178 阅读 · 0 评论 -
斐波那契数列
int f(int n){ return (pow((1+sqrt(5.0))/2, n)-pow((1-sqrt(5.0))/2, n))/sqrt(5.0);}这是一种直接计算方法,,,,,,证明不会;以后看到证明会补充;矩阵快速幂方法会补充,,,...原创 2018-07-02 10:38:15 · 105 阅读 · 0 评论 -
康托展开
首先什么是康托展开?X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! ,其中a[i]为当前未出现的元素中是排在第几个(从0开始)。这就是康托展开;给出一个1~n的的n个数的一种排列方式, 用康托展开可以求出该排列方式是第几种排列方式;如:123, 132, 213, 231, 312, 321 中 3 1 2 是第五种;康托展开为 2*...原创 2018-05-10 20:21:10 · 342 阅读 · 0 评论 -
Romantic HDU - 2669(扩展欧几里得)
Romantic 题目链接:HDU - 2669题意:求出a*x+b*y=1的一个x为最小的非负数的解;无解输出sorry;#include <iostream>#incl...原创 2018-04-23 11:25:11 · 299 阅读 · 0 评论 -
King's Game hdu5643(约瑟夫环变形)
King's GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 842 Accepted Submission(s): 464Problem Description In order to remember history, K...原创 2018-04-07 09:14:48 · 323 阅读 · 0 评论 -
青蛙的约会 POJ - 1061(扩展欧几里得)
青蛙的约会 题目链接:POJ - 1061题意:两只青蛙网恋了, 决定见一面, 于是相约同时向西跳, 由于地球是圆的, 所以其实它们是在绕圈跳, A每次可以跳m个单位, B每次可以跳n个...原创 2018-04-22 21:19:33 · 451 阅读 · 0 评论 -
One Person Game ZOJ - 3593(扩展欧几里得)
One Person Game 题目链接:ZOJ - 3593题意:在一维地图上, 有A,B,两点, 每步只能能走a或b或a+b个单位;问最少走几步能由A到B, 若不能由A走到B输出-1...原创 2018-04-22 19:39:02 · 594 阅读 · 0 评论 -
Modular Inverse ZOJ - 3609(扩展欧几里得求逆元)
Modular Inverse 题目链接: ZOJ - 3609给定模数m, 求a的逆元x, 相当于求解ax≡1(modm);可以转化成方程ax-my=1;此时可以用扩展欧几里得求得r=gcd(a, m);若r!=1则不存在x是a的逆元;若r...原创 2018-04-22 17:16:23 · 230 阅读 · 0 评论 -
快速幂&矩阵快速幂
快速幂:我的理解就是可以快速的计算a^b; 而这里所用的方法涉及到了二进制;如:2^11: 11的二进制值数是1011, 那么11可以写成1*2^3+0*2^2+1*2^1+1*2^0, 即:8+0+2+1=11;因此, 2^11=2^(8+2+1)=2^8*2^2*2^1; 很明显, 前者需要连续乘11个2, 后者只需运算3次;int power(int a, int b){ int a...原创 2018-02-25 10:13:26 · 319 阅读 · 0 评论 -
欧几里得算法(辗转相除)&扩展欧几里得
欧几里得算法是用来计算两个数的最大公约数;int GCD(int a, int b)//注意此处a>b;{ return b==0?a:gcd(b, a%b);}应用:一:最常见的,用来求最小公倍数(LCM); LCM=a/GCD(a, b)*b;二:扩展欧几里得算法, 求二元一次方程(a*x+b*y=c)的解;二元一次方程性质:(a*x+b*y=c)有解(整数解)...原创 2018-02-10 08:19:26 · 462 阅读 · 0 评论 -
hdu 1576 A/B(扩展欧几里得)
A/B 题目链接:HDU - 1576中文题, 直接附上题目内容:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,997...原创 2017-09-25 17:28:12 · 227 阅读 · 0 评论 -
欧拉函数初步探寻
一:什么是欧拉函数?定义:在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。(PS:,在小于等于8的数中与与8互质的数是:1, 3, 5, 7;共四个);二:欧拉函数有什么用?由定义可知,欧拉函数可以求出小于等于n的正整数中与n互质的数的个数;三:欧拉函数有什么性质?1:若n与m互质,则有;2:若n为奇数,则有;3:若p是素数,a是正整数,则有;...原创 2018-09-07 16:27:49 · 259 阅读 · 0 评论