模板
文章平均质量分 79
No_wonder_
信息学奥赛高中生
展开
-
模拟退火
模拟退火是在多峰函数上寻找最值的概率算法,其结果取决于人品。#include<bits/stdc++.h>#define ri register intusing namespace std;int n;int x[1010],y[1010],w[1010];double de=0.998;double avex,avey,avew;double clac(double qx,double qy){ double res=0; for(ri i=1;i<=n;i++)原创 2020-12-03 19:14:22 · 153 阅读 · 0 评论 -
树链剖分求LCA
#include <cstdio>#include <cstdlib>#define maxm 200010struct edge{int to,len,next;}E[maxm];int cnt,last[maxm],fa[maxm],top[maxm],deep[maxm],siz[maxm],son[maxm],val[maxm];void addedge(int a,int b,int len=0){ E[++cnt]=(edge){b,len,last[原创 2020-12-03 19:10:52 · 127 阅读 · 0 评论 -
01最短路
具体实现是用双端队列,0排在队头,1排在队尾,这样搜索的时候就会优先走0路#include<bits/stdc++.h>#include<queue>using namespace std;int n,p,k,maxn;int head[10010],cnt;int d[10010],vis[10010];struct Edge{ int to; int next; int dis;}e[20020];void add_edge(int from,int to原创 2020-12-03 19:07:59 · 599 阅读 · 0 评论 -
扩展欧几里得
利用欧几里得算法回溯的过程,构造出不定方程的一个解#include<bits/stdc++.h>using namespace std;long long a,b;long long x,y;void exgcd(long long a,long long b){ if(b==0) { x=1; y=0; return ; } exgcd(b,a%b); long long temp=x; x=y; y=temp-a/b*y;}int main(){原创 2020-12-03 19:03:33 · 75 阅读 · 0 评论 -
快速幂
利用分治,加快幂的求值,模板题中这篇代码过不去。#include<bits/stdc++.h>#define ri register int#define ull unsigned long long#define ll long longusing namespace std;ull n,m;ll cnt;ull ksm(ll base,ull pow){ ll res=1; while(pow) { if(pow&1) res=res*base; el原创 2020-12-03 19:01:25 · 80 阅读 · 0 评论 -
欧拉线性筛
欧拉线性筛时间复杂度是O(n)O(n)O(n)的,它保证了每个数只被他最小的质因子筛一遍。同时,欧拉筛的过程中也可以求出欧拉函数ϕ(n)\phi(n)ϕ(n)欧拉线性筛#include<bits/stdc++.h>using namespace std;bool isp[100010000];int pri[1000100],cnt;int n,q;int main(){ std::ios::sync_with_stdio(0); cin>>n>>q;原创 2020-12-03 18:56:55 · 155 阅读 · 0 评论 -
埃拉托斯特尼筛法
得到自然数n以内的全部素数,必须把不大于 n\sqrt nn的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去…。时间复杂度 $O(nlognlogn) $,小数据可用#include<bits/stdc++.h>using namespace std;bool prime[100010];int原创 2020-12-03 18:47:25 · 272 阅读 · 0 评论 -
模板库
No_wonderの模板们更多模板蒟蒻就学了一点点东西还要挑选重点,距离建立一个成熟的模板库还是很远na,加油!!!归并排序 洛谷P1177#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int MAXN=1e5+5; //100005 int a[MAXN], temp[MAXN], n;void MergeSort(int l原创 2020-08-11 16:36:27 · 735 阅读 · 0 评论