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

无锡新吴区住房建设交通局网站西安今天出大事

无锡新吴区住房建设交通局网站,西安今天出大事,租车网站模版,利用ionic做的网站在以往的408学习中,我们 往往采用邻接表和邻接矩阵解决图的存储问题, 但是经过刷题过程发现也有一种新的存储形式值得我们学习,废话不多说,直接上代码 讲解 初始的数组 int e[N], w[N], ne[N], h[H], idx; 算法过程 void add…

在以往的408学习中,我们 往往采用邻接表和邻接矩阵解决图的存储问题,

但是经过刷题过程发现也有一种新的存储形式值得我们学习,废话不多说,直接上代码

讲解

初始的数组

int e[N], w[N], ne[N], h[H], idx;

算法过程


void add(int x, int y, int z) {//e[i]表示 第i条边指向的目标节点e[idx] = y;// w[i]表示 第i条边的权重w[idx] = z;//ne表示边的索引 ne[i] = ?表示 第i条边的下一条边是哪条边ne[idx] = h[x];//h[H]:每个节点的第一条边,h[1] = 3从点1 出发的第一条边是 3号边。h[x] = idx++;
}

 

 

看点例题

Welcome - Luogu Spilopelia

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;
const int N=2e5+10;
int h[N],e[N],ne[N],w[N],idx;
int d[N];
bool vis[N];
bool t[103][103];//t[i][j]=true代表从i到j的道路损坏 
typedef pair<int,int> PII;
struct node{int u,v,w;
}p[N];
void add(int x,int y,int z)
{e[idx]=y;w[idx]=z;ne[idx]=h[x];h[x]=idx++;
}
void dijkstra(int x)
{memset(d,0x3f,sizeof d);d[x]=0;priority_queue<PII,vector<PII>,greater<PII> >q;q.push({d[x],x});while(!q.empty()){int now=q.top().second;q.pop();if(vis[now]) continue;vis[now]=true;for(int i=h[now];i!=-1;i=ne[i]){int j=e[i];if(d[j]>d[now]+w[i]){d[j]=d[now]+w[i];q.push({d[j],j});}}}
}
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)h[i]=-1;for(int i=1;i<=m;i++)scanf("%d%d%d",&p[i].u,&p[i].v,&p[i].w);int cnt;cin>>cnt; for(int i=1;i<=cnt;i++){int u,v;scanf("%d%d",&u,&v);t[u][v]=t[v][u]=true;}for(int i=1;i<=m;i++)if(t[p[i].u][p[i].v]){add(p[i].u,p[i].v,p[i].w);add(p[i].v,p[i].u,p[i].w);}else{add(p[i].u,p[i].v,0);add(p[i].v,p[i].u,0);}int b,e;cin>>b>>e;dijkstra(b);printf("%d\n",d[e]);return 0;
}

 

看点例题

https://www.acwing.com/solution/content/49931/

这个代码我写错了,但是思路感觉没啥问题

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;using LL = long long;
const int N = 110, M = 510, P = 100000;
int n, m;
int h[N], e[2*M], w[2*M], ne[2*M], idx;
int dist[N], p[N];
bool vis[N];int qmi(int a, int b, int p){int res = 1;while(b){if(b & 1) res = (LL)res * a % p;b >>= 1;a = (LL)a * a % p;}return res % p;
}int find(int x){if(x != p[x]) p[x] = find(p[x]);return p[x];
}void add(int a, int b, int c){e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}void dijkstra(){memset(dist, 0x3f, sizeof(dist));dist[0] = 0;for(int i = 1; i <= n; ++i){int t = -1;for(int j = 0; j < n; ++j){if(!vis[j] && (t == -1 || dist[t] > dist[j])){t = j;}}vis[t] = true;for(int i = h[t]; i != -1; i = ne[i]){int j = e[i];if(dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];}}}
}int main()
{cin >> n >> m;memset(h, -1, sizeof(h));for(int i = 0; i < n; ++i) p[i] = i;for(int i = 0; i < m; ++i){int a, b, c;cin >> a >> b;int aa = find(a), bb = find(b);if(aa != bb){p[aa] = bb;c = qmi(2, i, P);add(a, b, c);add(b, a, c);}else continue;}dijkstra();for(int i = 1; i < n; ++i){if(dist[i] == 0x3f3f3f3f) cout << "-1" << endl;else cout << dist[i] % P << endl;}return 0;
}// 作者:Asiim0v
// 链接:https://www.acwing.com/solution/content/49931/
// 来源:AcWing
// 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

http://www.dtcms.com/wzjs/490851.html

相关文章:

  • 阿里云 oss wordpress百度首页排名优化价格
  • 午夜做网站b站推广怎么买
  • 工业设计可以考什么公务员seo网站优化工具
  • 做旅游网站的需求分析网上国网推广
  • url转发 网站标题百度权重优化软件
  • php手机网站后台源码seo站长工具是什么
  • 网站如何增加增删查改怎么做百度搜索引擎的网址
  • 查看网站国际联网备案号torrent种子搜索引擎
  • 裕华建设集团网站代推广app下载
  • 网站开发的项目总结上海全网营销推广
  • macromedia怎么做网站合肥网络优化公司有几家
  • 无极在线招聘招工最新招聘天津关键词优化专家
  • 做网站公司哪家公司广州网络推广培训
  • 上海网站建设哪个好灰色词快速上排名
  • 聊城阳谷网站建设企业网站的优化建议
  • 怀柔成都网站建设口碑营销策略
  • 画廊网站模板泰安百度推广代理商
  • 做网站的公司现在还赚钱吗seo人员的相关薪资
  • 新疆省住房建设厅官方网站南宁seo外包靠谱吗
  • 如何投诉网站制作公司app推广活动策划方案
  • 企业招聘信息发布平台济南seo整站优化价格
  • 如何访问国外网站市场营销计划书模板
  • 旅游网站开发背景论文盐城seo营销
  • 友创互联网站建设有限公司网络服务有限公司
  • 行业网站导航百度一下就知道
  • 网站喜报怎么做百度竞价推广是什么工作
  • 临朐网站开发市场推广方案范文
  • 惠州网站建设是什么意思青岛网站seo诊断
  • 厦门软件开发培训机构合肥优化推广公司
  • 做网站收藏的网页网站推广方式有哪些