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

商城建站费用今天的新闻

商城建站费用,今天的新闻,如何做网站网页免费,集团网站建设服务平台对fill用法的介绍 1.用邻接矩阵实现 const int maxn100; const int INF100000000;//无穷大,用来初始化边 int G[maxn][maxn];//用邻接矩阵存储图的信息 int isin[maxn]{false};//记录是否已被访问 int minDis[maxn];//记录到顶点的最小距离void Dijkstra(int s,in…

对fill用法的介绍

1.用邻接矩阵实现

const int maxn=100;
const int INF=100000000;//无穷大,用来初始化边
int G[maxn][maxn];//用邻接矩阵存储图的信息
int isin[maxn]={false};//记录是否已被访问
int minDis[maxn];//记录到顶点的最小距离void Dijkstra(int s,int num){fill(minDis,minDis+num,INF);//先无穷大覆盖minminDis[s]=0;//令起始结点为0for(int i=0;i<num;i++){//记录最短距离及其对应下标:先初始化为最小int m=INF,centra=-1;for(int j=0;j<num;j++){//若未被访问且到顶点的最短距离最小if(isin[j]==false&&minDis[j]<m){//更新最短距离及其下标m=minDis[j];centra=j;}}//找不到最小的顶点了,说明此时剩余结点与顶点连通,无关INF,说明已结束if(centra==-1) return;isin[centra]=true;//开放与centra有关的顶点,并更新其当前到顶点的最小距离for(int k=0;k<num;k++){if(isin[k]==false&&G[centra][k]!=INF&&G[centra][k]+minDis[centra]<minDis[k])minDis[k]=G[centra][k]+minDis[centra];}}
}

记录最短路径

添加一个记录结点的数组即可,将它记录最短路径的结点的前一个结点

const int maxn=100;
const int INF=100000000;//无穷大,用来初始化边
int G[maxn][maxn];//用邻接矩阵存储图的信息
int isin[maxn]={false};//记录是否已被访问
int minDis[maxn];//记录到顶点的最小距离
int pre[maxn];//记录最短路径void Dijkstra(int s,int num){fill(minDis,minDis+num,INF);//先无穷大覆盖minminDis[s]=0;//令起始结点为0for(int i=0;i<num;i++)pre[i]=i;//初始化为自身for(int i=0;i<num;i++){//记录最短距离及其对应下标:先初始化为最小int m=INF,centra=-1;for(int j=0;j<num;j++){//若未被访问且到顶点的最短距离最小if(isin[j]==false&&minDis[j]<m){//更新最短距离及其下标m=minDis[j];centra=j;}}//找不到最小的顶点了,说明此时剩余结点与顶点连通,无关INF,说明已结束if(centra==-1) return;isin[centra]=true;//开放与centra有关的顶点,并更新其当前到顶点的最小距离for(int k=0;k<num;k++){if(isin[k]==false&&G[centra][k]!=INF&&G[centra][k]+minDis[centra]<minDis[k]){minDis[k]=G[centra][k]+minDis[centra];//记录最短距离pre[k]=u;//记录最短路径的前驱结点}}
}
void minPath(int begin,int now){//输出if(now==begin)//回溯到起点{cout<<begin;return;//跳到下一层}minPath(begin,pre[now]);cout<<now;//从起点后不断往外,输出结点}

2.用邻接表实现

#include <vector>
using namespace std;
const int maxn=100;
const int INF=10000000000;
bool isin[maxn]={false};
int path[maxn];
struct node{int id;//结点编号int value;//结点的边权
}nodes;
vector<node> v[maxn];void Dijisktra(int s,int num){int m,mp;fill(path,path+num,INF);path[s]=0;for(int i=0;i<num;i++){mp=INF;m=-1;for(int j=0;j<num;j++){if(isin[j]==false&&path[j]<mp){m=j;mp=path[j];}}if(m==-1) return;isin[m]=true;//只有这里与邻接矩阵不同,因为邻接表存储结点信息的方式不同 for(int k=0;k<num;k++){//v[m][k]-指的是顶点m中第k+1个与m相连的结点int index=v[m][k].id;if(isin[index]==false&&v[m][k].value+mp<path[index])path[index]=v[m][k].value+mp;}}
}

模拟简单实现

#include <iostream>
using namespace std;
const int maxn=100;
const int INF=10000000;
bool isin[maxn]={false};
int G[maxn][maxn],num,edge,begins;
int path[maxn];void Dijisktra(int s){fill(path,path+num,INF);path[s]=0;for(int i=0;i<num;i++){int m=-1,n=INF;for(int j=0;j<num;j++){if(isin[j]==false&&path[j]<n){m=j;n=path[j];}}if(m==-1) return;isin[m]=true;for(int k=0;k<num;k++){if(isin[k]==false&&G[m][k]!=INF&&G[m][k]+path[m]<path[k])path[k]=G[m][k]+path[m];}}
}
int main(){int v1,v2,weight;cin>>num>>edge>>begins;fill(G[0],G[0]+maxn*maxn,INF);//初始为无穷for(int i=0;i<edge;i++){cin>>v1>>v2>>weight;G[v1][v2]=weight;}Dijisktra(begins);for(int i=0;i<num;i++)if(i!=num-1)cout<<path[i]<<" ";else cout<<path[i]<<endl;return 0;
}
http://www.yayakq.cn/news/686611/

相关文章:

  • 2008iis添加网站打不开江西宗杰建设工程有限公司网站
  • asp响应式h5网站源码深圳市手机网站建设品牌
  • 金融网站 改版方案手机网站 案例
  • 百度推广网站谁做怎么选择兰州h5制作
  • 湖南株洲静默奉节县关键词seo排名优化
  • 高校网站群管理系统北京西站官网主页
  • 公司网站建设苏州劳伦申报网站
  • 坪山商城网站建设哪家便宜自我介绍网站html
  • 手机网站怎么dw做哪里有免费的网站自己做
  • 深圳建网站的公司wordpress登录 无响应
  • 临清网站建设价格传奇游戏排行榜
  • 网站大全2021phpcms建站教程
  • 惠州市网站建设个人网站建设中合作加盟的作用
  • 龙岩网站定制wordpress菜单显示用户
  • 网站建设合作协议书用asp.net做的网站
  • 北京诚通新新建设有限公司网站网站优化年报告
  • 巨鹿做网站哪家好深圳网站设计兴田德润i优惠吗
  • 网站备案幕布照片尺寸网站建设360
  • 做婚庆网站有哪些视频网站建站免费
  • 网站排名优化化ui培训怎么样
  • 网站建设山东聚搜网络广州网站建设小程序
  • 网站开发应用到的技术名词猪八戒网站建设公司
  • 专业APP客户端做网站ucloud网站开发
  • 做网站还是做app好网站辅导运营与托管公司
  • 怎么免费做网站wordpress能做论坛吗
  • qq推广网站刷关键词指数
  • 爱射影院网站建设中网站系统管理员模块
  • 值得买网站模板人事外包服务
  • 深圳设计网站有限公司厦门seo关键词优化运营
  • 做网站亏本wordpress修改模板技巧