
算法理解
吃饭的东西,越多越好
Kerwin--
一起来记录学习吧~
展开
-
欧拉函数~
欧拉函数:求小于等于n与n互质的数的个数。模板ll init(ll n){ ll ans = n; for(int i=2; i*i <= n; ++i) { if(n%i == 0) { ans = ans/i*(i-1); while(n%i == 0) n/=i; } } if(n > 1) ans = ans/n*(原创 2020-10-02 15:14:32 · 67 阅读 · 0 评论 -
矩阵快速幂模板
矩阵快速幂#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;typedef long long ll;ll n,m;struct node{ ll a[105][105];}s,ans;void init(node &ans){ memset(ans.a,0,sizeof(ans.a)); for(int i=1;i<=n;i++) ans.a[i][i]=1; }no原创 2020-10-02 19:07:18 · 160 阅读 · 1 评论 -
逆元
计算 (A / B)%mod因为B大于1 A若大于long long存不下,所以将/ 改为* 用到逆元(A/B)%mod=(A*x)%mod设(B*x)%mod=1%modx=(mod+1)/B原创 2020-10-01 12:46:01 · 141 阅读 · 0 评论 -
差分
**一维拆分 **巨巨巨实用的的方法,可惜现在才学 会。给出一段为零数组a,每次给出一段区间,在这段区间上每个元素都+1,求最后数组的大小?解法:每次给出l,r 使a[l]+1,a[r+1]-1 最后进行前缀和,所得到的前缀和数组就是答案。原理:前缀和的时候 每次的a[r+1]-1把此后的前缀和抵消了。让a[l]+1的影响只停留在a[r]...原创 2020-07-18 10:49:38 · 143 阅读 · 0 评论 -
快速幂
long long qpow(long long x, long long y){ long long ret = 1; while(y) { if(y & 1) ret = (ret*x) % mod; y>>=1; x = (x * x) % mod; } return re...原创 2020-04-17 10:05:38 · 128 阅读 · 0 评论 -
sort
sort的已知用法头文件: #include < algorithm >时间复杂度:n*log2n用法://默认从小到大排序sort(a,a+n);//数组(要排序部分的首地址,要排序部分的末地址)sort(v.begin(),v.end());//STL标准容器中的vector、string、deque(还不会)特别的从大到小排序需加入头文件 #include< ...原创 2020-04-17 10:57:26 · 143 阅读 · 0 评论 -
动态规划——背包问题
背包问题目录01背包完全背包目录01背包01背包完全背包原创 2020-07-05 11:09:53 · 141 阅读 · 0 评论