随笔分类 - 算法学习
摘要:#include<bits/stdc++.h> using namespace std; string a,b; void getmul(){ vector<int>v(a.size()+b.size()-1);///两个数相乘位数最多为两个数位数相加,又数组从0开始记录所以减一 for(int i
阅读全文
摘要:定义 在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。符号为φ(x)。例如φ(8)=4,因为1,3,5,7均和8互质。 通式 , (其中p1, p2……pn为x的所有质因数,x是不为0的整数) 定义 φ(1)=1(和1互质的数(小于等于1)就是1本身)。 通式可以理解为利用乘
阅读全文
摘要:先贴个整数快速幂 #include<bits/stdc++.h> using namespace std; typedef long long int ll; ll b,p,k,ans=1,res; int main(){ scanf("%lld%lld%lld",&b,&p,&k); cout<<
阅读全文
摘要:无向图,检测有无环,可以用并查集 #include<bits/stdc++.h> using namespace std; const int maxn=1e4; vector<pair<int,int> >a(maxn); int parent[maxn]; int rank_[maxn]; in
阅读全文
摘要:djsl+优先队列求单源最短路。 #include<bits/stdc++.h> using namespace std; typedef long long int ll; const int maxn=5*1e5+5; vector<pair<ll,ll> >v[maxn]; ll dis[ma
阅读全文
摘要:问题1.判断有没有环 http://hihocoder.com/problemset/problem/1174 用vector模拟邻接表,开一个记录入度的一维数组,一个存储入度为0的队列 ac代码如下 #include<iostream> #include<algorithm> #include<v
阅读全文
摘要:今天在B站学习了线段树,up主讲得很清晰。 引入:我们在一个数组中如果想更新一个数据的值,记为update,所用的时间复杂度是o(1),而求某一段区间的端点值之和,记为query,时间复杂度是o(n)。 求某一段区间的长度之和可以采用端点前缀和相减,建立一个前缀和数组,[l,r]的值等于sum[r]
阅读全文
浙公网安备 33010602011771号