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

佛山网站建设及优化公司十大暗网搜索引擎

佛山网站建设及优化公司,十大暗网搜索引擎,h5免费制作网站,建站优化办事效率高题意 给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径 思路 如果选择商业路线为从u到v,则需要从s->u,u->v,v->e点的路径最短。使用Dijkstra计算出从s点…

题意

给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径

思路

如果选择商业路线为从u到v,则需要从s->u,u->v,v->e点的路径最短。使用Dijkstra计算出从s点到其它各点,以及从e点到其它各点的最短路径,然后遍历商业路线u,v,选取从s->u,u->v,v->e点中路线最短的

代码

#include <bits/stdc++.h>using namespace std;#define _for(i, a, b) for(int i = (a); i < (b); i++)
#define _rep(i, a, b) for (int i = (a); i <= (b); i++)struct Edge
{int u, v, d;
};struct HeapNode
{int u, d;bool operator<(const HeapNode& other) const{return d > other.d;}
};template <int SZV, int INF>
struct Dijkstra
{int n;vector<Edge> edges;vector<int> graph[SZV];bool done[SZV];int d[SZV], p[SZV];void init(int n){this->n = n;edges.clear();_for(i, 0, n) {graph[i].clear();}}void addEdge(int u, int v, int d){graph[u].push_back(edges.size());edges.push_back({u, v, d});}void dijkstra(int s){priority_queue<HeapNode> pq;fill_n(done, n, false);fill_n(d, n, INF);d[s] = 0;pq.push({s, 0});while (!pq.empty()) {HeapNode curNode = pq.top();pq.pop();int u = curNode.u;if (done[u]) {continue;}done[u] = true;_for(i, 0, graph[u].size()) {const auto& edge = edges[graph[u][i]];int v = edge.v;if (d[u] + edge.d < d[v]) {d[v] = d[u] + edge.d;p[v] = graph[u][i];pq.push({v, d[v]});}}}}void getPath(int s, int e, deque<int>& path, bool rev = false){int x = e;if (rev) {path.push_back(x);} else {path.push_front(x);}while (x != s) {x = edges[p[x]].u;if (rev) {path.push_back(x);} else {path.push_front(x);}}}
};void fastio()
{ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
}const int MAXN = 500 + 4;
const int INF = 1e9;int main()
{fastio();#ifndef ONLINE_JUDGEifstream fin("f:\\OJ\\uva_in.txt");streambuf* back = cin.rdbuf(fin.rdbuf());#endifint N, S, E;int kase = 0;while (cin >> N >> S >> E) {if (kase++) {cout << endl;}Dijkstra<MAXN, INF> sd, ed;sd.init(N + 1); ed.init(N + 1);int M;cin >> M;_for(i, 0, M) {int X, Y, Z;cin >> X >> Y >> Z;sd.addEdge(X, Y, Z);sd.addEdge(Y, X, Z);ed.addEdge(X, Y, Z);ed.addEdge(Y, X, Z);}sd.dijkstra(S);ed.dijkstra(E);int cu = -1;int ans = INF;deque<int> path;if (sd.d[E] < ans) {ans = sd.d[E];sd.getPath(S, E, path);}auto update = [&](int u, int v, int d) {if (sd.d[u] < ans && ed.d[v] < ans && sd.d[u] + d + ed.d[v] < ans) {ans = sd.d[u] + d + ed.d[v];cu = u;path.clear();sd.getPath(S, u, path);ed.getPath(E, v, path, true);}};int K;cin >> K;_for(i, 0, K) {int u, v, d;cin >> u >> v >> d;update(u, v, d);update(v, u, d);}_for(i, 0, path.size()) {if (i) {cout << " ";}cout << path[i];}cout << endl;if (cu == -1) {cout << "Ticket Not Used" << endl;} else {cout << cu << endl;}cout << ans << endl;}#ifndef ONLINE_JUDGEcin.rdbuf(back);#endifreturn 0;
}
http://www.hengruixuexiao.com/news/55569.html

相关文章:

  • app开发注意事项湖南靠谱seo优化报价
  • 手机站和网站有区别吗长沙seo外包优化
  • 如何拥有自己的私人网站平台b2b模式的电商平台有哪些
  • 遵义外国网站制作谷歌seo网站排名优化
  • 做网站业务的怎么寻找客户百度一下首页网页
  • 微信平台微网站开发网上推广用什么平台推广最好
  • 网站服务器过期了郑州seo招聘
  • 长沙3合1网站建设价格站长之家权重查询
  • 织梦源码怎样做单页网站营销推广投放
  • 怎样租用个人网站空间百度识图网页版入口
  • 城乡建设管理局的网站推广工作的流程及内容
  • 有哪些可以做h5的网站网站优化排名资源
  • 沈阳怎么做网站石家庄seo网站排名
  • 网站不见了seo观察网
  • h5 网站开发流程热门关键词
  • 动态网站是什么sem和seo是什么职业
  • 公司的网站难不难做湖南手机版建站系统开发
  • 建立网站找什么公司搜索引擎简称seo
  • asp源码-漂亮企业源码大气公司网站模版免费的企业黄页网站
  • 怎么开公司seo营销软件
  • 给一瓶水做网站如何创建自己的网站平台
  • 网站服务器排名广东的seo产品推广服务公司
  • 做同城特价的网站有哪些专门用来查找网址的网站
  • 怎么创建小程序商店搜索关键词优化服务
  • WordPress破解怎样主题修复温州seo排名优化
  • 珠海华中建设工程有限公司网站优化关键词是什么意思
  • 露兜博客 wordpress网络培训seo
  • 网站正在建设中是什么意思企业网站建设需求分析
  • dede网站搬家 空间转移的方法网页制作公司哪家好
  • 郑州近期重大新闻沈阳seo关键字优化