摘要:
Fibonacci数是组合数学中非常重要的一个数列,它的递推公式是: F(1)=F(2)=1 F(n)=F(n-1)+F(n-2) 当然,用这个公式来计算F(n)是非常慢的,当计算F(n)时需要从F(1)一直计算到F(n)。Fibonacci数列还满足一些其他的公式,如: F(a+b+1)=F(a+ 阅读全文
摘要:
很不错的题,加深了我对exgcd的理解 (以前我认为做题就是搜索、dp...原来数学也很重要) 理解了几个小时,终于明白了。但我什么都不打算写。 看代码吧: 阅读全文
摘要:
•扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) = d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。 •设 a>b。 •1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; •2,ab<> 阅读全文
摘要:
•快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 代码: #include<iostream> using namespace std; long long pow(int a,int b){ long long ans=1; 阅读全文
摘要:
最小生成树 每读入一个城市,把他与之前的所有城市做一次link() link的内容: 1.如果两个城市直接相连,合并他们的集合(并查集)2.如果两个城市可以搭桥,添加一条边来连接。如果不可以搭桥,什么也不做。 接着循环所有pa[],如果pa[i]==i,那么这是一个city。这样计算city数量 做 阅读全文