当前位置: 首页 > news >正文

开源手机建站系统如何自建公司网站

开源手机建站系统,如何自建公司网站,四川网站建设和优化,营销目标包括哪些内容图论 <最短路问题> 有向图 1.邻接矩阵&#xff0c;稠密图 2.邻接表 &#xff08;常用&#xff09;单链表&#xff0c;每一个点都有一个单链表 &#xff0c;插入一般在头的地方插&#xff0c; 图的邻接表的存储方式 树的深度优先遍历 特殊的深度优先搜索&#xff0c…

图论 <最短路问题>

有向图

1.邻接矩阵,稠密图

2.邻接表 (常用)单链表,每一个点都有一个单链表 ,插入一般在头的地方插,

图的邻接表的存储方式

树的深度优先遍历

特殊的深度优先搜索,难点是如何实现,一条道走到黑

const int N=100010,M=n*2;
int h[N],e[N],ne[N],idx;
bool st[N];//记录状态void add(int a,int b)
{e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}
void dfs(int u)
{st[u]=true;for(i=h[u];i!=-1;i=ne[i]){int j=e[i];//当前节点对应的图的值;if(!st[j])dfs(j);}
}
int main()
{memset(h,-1,sizeof(h));return 0;
}

树的宽度优先遍历

例题:图的层序搜索

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;const int N=100010;
int n,m;
int d[N];
int e[N],h[N],idx,ne[N];
void add(int a,int b)
{e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}
void bfs()
{memset(d,-1,sizeof d);queue<int> q;d[1]=0;q.push(1);while(q.size()){auto t=q.front();q.pop();for(int i=h[t];i!=-1;i=ne[i]){int j=e[i];if(d[j]==-1){d[j]=d[t]+1;q.push(j);}}}printf("%d",d[n]);
}
int main()
{cin>>n>>m;memset(h,-1,sizeof h);for(int i=0;i<m;i++){int a,b;cin>>a>>b;add(a,b);}bfs();return 0;
}

拓扑序列(有向图)

例题 :有向图的拓扑序列

#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int n, m;
int h[N], e[N], ne[N], idx;
int d[N];
int q[N];void add(int a, int b)
{e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}bool topsort()
{int hh = 0, tt = -1;for (int i = 1; i <= n; i ++ )if (!d[i])q[ ++ tt] = i;while (hh <= tt){int t = q[hh ++ ];for (int i = h[t]; i != -1; i = ne[i]){int j = e[i];if (-- d[j] == 0)q[ ++ tt] = j;}}return tt == n - 1;
}int main()
{scanf("%d%d", &n, &m);memset(h, -1, sizeof h);for (int i = 0; i < m; i ++ ){int a, b;scanf("%d%d", &a, &b);add(a, b);d[b] ++ ;}if (!topsort()) puts("-1");else{for (int i = 0; i < n; i ++ ) printf("%d ", q[i]);puts("");}return 0;
}

迪杰斯特拉算法(朴素版)

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
const int a1=510;
int n,m;
int g[a1][a1];
int dist[a1];
bool st[a1];
int dijk()
{memset(dist,0x3f,sizeof dist);dist[1]=0;for(int i=0;i<n-1;i++){int t=-1;for(int j=1;j<=n;j++){if(!st[j]&&(t==-1||dist[t]>dist[j]))t=j;}for(int j=1;j<=n;j++)dist[j]=min(dist[j],dist[t]+g[t][j]);st[t]=true;}if(dist[n]==0x3f3f3f3f)return -1;return dist[n];
}
int main()
{cin>>n>>m;memset(g,0x3f,sizeof g);while(m--){int a,b,c;cin>>a>>b>>c;g[a][b]=min(g[a][b],c);}cout<<dijk();return 0;
}

迪杰斯特拉算法(堆优化版)

#include<iostream>
#include<queue>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
typedef pair<int,int> pii;
const int N =1e6 + 10;
int n,m,a,b,c;
int h[N],e[N],ne[N],w[N],idx;
int dist[N];
bool st[N];
void add(int a,int b,int c)
{e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}
int dijk()
{memset(dist,0x3f3f3f3f,sizeof dist);dist[1]=0;priority_queue<pii, vector<pii>, greater<pii>> heap;heap.push({0,1});while(heap.size()){auto t=heap.top();heap.pop();int ver=t.second,distance=t.first;if(st[ver])continue;st[ver]=true;for(int i=h[ver];i!=-1;i=ne[i]){int j=e[i];if(dist[j]>dist[ver]+w[i]){dist[j]=dist[ver]+w[i];heap.push({dist[j],j});}}}if(dist[n]==0x3f3f3f3f)return -1;return dist[n];
}
int main()
{cin>>n>>m;memset(h,-1,sizeof h);while(m--){cin>>a>>b>>c;add(a,b,c);}cout<<dijk();return 0;
}
http://www.yayakq.cn/news/745846/

相关文章:

  • 铁岭 网站建设网站一般用什么语言做
  • 哪个网站做ppt赚钱新网站应该怎么做
  • 高州网站建设可用来制作网页的软件有
  • cnc强力磁盘 东莞网站建设设计很好看的网站
  • 创新的o2o网站建设石家庄做网站好的网络技术有限公司
  • 北京免费自己制作网站网站开发怎么写
  • 公司网站的管理和维护四川九江龙钢结构网架公司
  • 网站改版代码网站备案的幕布是什么来的
  • 做服装广告素材网站有哪些南同网站建设
  • 网站目录优化福建住房和城建设网站
  • 宁波专业做公司网站的科技公司视觉设计包括
  • 免费发布网站seo外链备案修改网站名称
  • 苏州网站推广去苏州聚尚网络营销案例网站推荐
  • 网上哪个网站教做西点网站建设肆金手指排名
  • 大淘客可以做几个网站做飞象金服的网站
  • 怎么看网站是服务器还是虚拟主机网站关键词有哪些
  • 甘肃省建设银行网站开发制作一个网站
  • 播放器网站怎么做廊坊森德科技有限公司
  • 深圳建设网站首页国内比较牛的网站建设
  • 网站建设的现状和趋势照片图片制作
  • 网站建设信息科技公司html网页设计框架
  • 网站上怎么做动画广告视频在线观看做网站的一般尺寸
  • 东莞著名网站建设优秀的手机网站
  • 手机端移动网站建设福州小学网站建设
  • 网站备案后需要年检吗网站登录验证码是怎么做的
  • 网站建设个人市桥网站建设
  • wordpress 导航站点微信 wordpress插件
  • 石家庄网站开发wordpress rss采集
  • 做网站基本流程济邦建设有限公司官方网站
  • 百度大全网站花瓣按照哪个网站做的