数论
您的好友急速上线
ACMer 就得好好学
展开
-
hdu 1695 GCD
GCD数论专题,容斥与欧拉原创 2017-07-31 08:18:22 · 178 阅读 · 0 评论 -
分析外星信号
题意:给出长度为N的信号纪录时,编写程序计算总和等于k的子序列个数通过公式来生成输入值通过在线算法来编程,代码如下:#include using namespace std;struct RNG{ unsigned seed; RNG():seed(1983) {} unsigned next() { uns原创 2018-01-20 14:28:31 · 345 阅读 · 0 评论 -
阶乘大全
n的阶乘的结果有几个零#include <iostream>using namespace std;int main(){ int n, ans = 0; cin >> n; while (n) { ans += n/5,n/=5; } cout << ans << endl; ...原创 2018-03-26 19:08:26 · 185 阅读 · 0 评论 -
快速幂的递归与非递归写法
递归写法#include <bits/stdc++.h>using namespace std;int pow_mod(int a,int n,int m){ if(n==0) return 1; int x=pow_mod(a,n/2,m); long long ans=(long long)x*x%m; if(n%2==1)...原创 2018-03-26 20:23:33 · 943 阅读 · 0 评论 -
中国剩余定理(不互质版)
中国剩余定理...有点难懂呀,还是记一下模板好了 刚好接触到一道模板题,是在hdu上的 3579中国剩余定理(不互质)模板题暂时先把模板放在这里,等什么时候理解了中国剩余定理再回来写理解吧,目前还是就学着用一下模板吧///不互质的中国剩余定理///HDU3579亲测AC#include <iostream>#include <cstdio>...原创 2018-08-09 10:58:46 · 1245 阅读 · 0 评论 -
组合数的逆元求法
#include <bits/stdc++.h>#define ll long longusing namespace std;const ll mod=1e9+7;const int maxn=1e5+7;ll fac[maxn];ll inv[maxn];ll C(int m,int n){ if(m>n) return -1; ...原创 2018-08-15 09:10:16 · 1304 阅读 · 0 评论 -
欧几里德与扩展欧几里德
欧几里德算法是辗转相除法的实现,辗转相除法的关键在于gcd(a,b)=gcd(b,a%b) 它和它的边界条件gcd(a,0)=a构成了以下代码。因为lcm*gcd=a*b,所以求出两个数字的最大公因子就可以求出它们的最小公倍数#include <iostream>#define ll long longusing namespace std;ll gcd(ll a...原创 2018-08-08 09:37:29 · 241 阅读 · 0 评论 -
唯一分解定理
不是最优的做法,就是简单的去除然后再判断,时间上面会有点慢,但是可以有所改进下面是代码实现#include <bits/stdc++.h>using namespace std;///时间复杂度有待优化,在div的那个for循环中时间复杂度为O(sqrtn)///优化可以先用筛法求出素数的个数,再去对素数进行循环vector<int> factorS...原创 2018-08-08 10:44:46 · 303 阅读 · 0 评论