图论
罗旅洲
Hello World!
展开
-
BFS与反向BFS,链式前向星与反向建边
P2296 寻找道路1.4K通过5.1K提交题目提供者该用户不存在标签 NOIp提高组2014 云端 难度 普及+/提高时空限制 1s / 128MB 题目描述在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:1 .路径上的所有点的出边所指向的点都直原创 2017-07-13 11:29:04 · 779 阅读 · 0 评论 -
floyed
#include#include#include#includeusing namespace std;int d[103][103];void prepare(int n){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j)d[i][j]=0; else d[i][j]=100;}int main(){原创 2016-09-30 15:59:10 · 503 阅读 · 0 评论 -
链式前向星
#include#include#include#includeusing namespace std;const int maxn=100010;int begin[maxn],to[maxn],next[maxn],e;//begin存储以i为起点的第一条边存储的位置,实际上你会发现这里的第一条边存储的位置其实在以i为起点的所有边的最后输入的那个编号//next存储以i为起点原创 2016-11-06 20:15:42 · 231 阅读 · 0 评论 -
SPFA+链式前向星
#include#includeconst int maxn=100000+10,maxm=1000000+10,oo=1000000000;using namespace std;int To[maxm],Next[maxm],w[maxm],Begin[maxn],d[maxn],p[maxn],q[maxn*10],e;void add(int x,int y,int z){ T原创 2016-11-06 20:19:40 · 395 阅读 · 0 评论 -
最小生成树+并查集+ kruskal
#include#include#include#include#includeusing namespace std;const int maxn=10010;int f[maxn],rank[maxn];struct node{ int x,y,w; }a[maxn];bool cmp(node x,node y){ return x.w<y.w; } int fa原创 2016-11-06 20:38:33 · 247 阅读 · 0 评论 -
dijsktra模板
#include#include#include#includeusing namespace std;const int inf=1e7;int a[100][100],d[100],p[100];int main(){ int i,j,k,m,n,x,y,w; scanf("%d%d",&n,&m); for(i=1;i<=m;i++){ scanf("%d%d%d",原创 2017-03-31 19:12:42 · 328 阅读 · 0 评论 -
欧拉回路
P2731 骑马修栅栏 Riding the Fences292通过1.2K提交题目提供者该用户不存在标签 USACO云端 难度 普及+/提高时空限制 1s / 128MB 题目背景Farmer John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。题目描述John是一个与其他农民一样原创 2017-05-13 20:42:26 · 253 阅读 · 0 评论 -
并查集(路径压缩 && 启发式合并!!!)
#include#include#include#includeusing namespace std;int fa[200010],size[200010];int find(int x){ if(fa[x] == x) return x; return fa[x] = find(fa[x]);}void mix(int x,int y){ x=find(x),y=find原创 2017-04-14 21:21:26 · 853 阅读 · 0 评论 -
dijsktra+链式前向星
#include#include#include#includeusing namespace std;const int inf=1e7,num=10;int to[100*num],be[100],ne[100*num],w[100],d[100],p[100],e;void add(int x,int y,int c){ to[++e]=y; ne[e]=be[x]; b原创 2017-03-31 19:46:44 · 271 阅读 · 0 评论 -
最小生成树(prim算法)模板
#include#include#include#includeusing namespace std;int map[5001][5001],dis[5001]; bool p[5001];int main(){#ifndef ONLINE_JUDGE freopen("prim.in","r",stdin); freopen("prim.out","w",stdout);原创 2017-04-28 20:31:39 · 356 阅读 · 0 评论 -
最小生成树(kruskal)
直接上代码/************************************************************************* > Author: LLZ-cnyali > Created Time: 2017/4/28 20:35:56 *************************************************原创 2017-04-28 21:38:11 · 262 阅读 · 1 评论 -
Floyd基础知识 多源最短路 && 传递闭包(内含优化) && 最小环
脑文家Floyed求多源最短路算法过程1,从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。2,对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。采用松弛技术(松弛操作),对在i和j之间的所有其他点进行一次松弛。所以时间复杂度为O(n^3);[cpp]转载 2017-08-29 18:58:33 · 401 阅读 · 0 评论