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

网站后台流程广东搜索引擎优化

网站后台流程,广东搜索引擎优化,网站建设与管理的策划书,接app推广接单平台链接:P3385 【模板】负环 - 洛谷 题目: 思路: 考察 Bellman-Ford 或 SPFA 本题是一个板子题,也是学到了 Bellman-Ford 和 SPFA Bellman-Ford 算法的主要思想其实类似迪杰斯特拉,我们暴力枚举每一个点的每一条边&…

链接:P3385 【模板】负环 - 洛谷

题目:

思路:

考察 Bellman-Ford 或 SPFA

本题是一个板子题,也是学到了 Bellman-Ford 和 SPFA

Bellman-Ford 算法的主要思想其实类似迪杰斯特拉,我们暴力枚举每一个点的每一条边,如果能更新最小距离,那么就替换,同时标记该次我们进行了松弛操作,通常情况下 n-1 次松弛操作后我们就能找到最短路了,但是由于可能存在负环,因此我们要注意多判断一次

负环顾名思义就是权值为负的环,既然它为负,那么我们就可以走无数次使得这个环的权值无限小

SPFA 则是利用队列进行了优化,也类似迪杰斯特拉的队列优化,这次我们不再暴力枚举每个点,而是枚举队列中可能更新的点,那么什么情况下可能更新呢?显然是上次更新过的点下次才可能继续更新,因此我们就要提供三个新东西,一个是判断该点是否已经在队列中,一个是判断该点入队了几次,还一个就是队列了

下面提供两个算法的代码

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include <iomanip>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <utility>
#include <array>
#include <tuple>
using namespace std;
#define int long long
#define yes cout << "YES" << endl
#define no cout << "NO" << endlvoid solve()
{int n, m;cin >> n >> m;vector<vector<pair<int,int>>> g(n + 1);for (int i = 0; i < m; i++){int u, v, w;cin >> u >> v >> w;if (w >= 0){g[u].push_back({ v,w });g[v].push_back({ u,w });}else{g[u].push_back({ v,w });}}int flag = 0;vector<int> dis(n + 1, 1e18);dis[1] = 0;for (int i = 1; i <= n; i++){flag = 0;for (int i = 1; i <= n; i++){if (dis[i] == 1e18) continue;for (auto &son : g[i]){if (dis[son.first] > dis[i] + son.second){dis[son.first] = dis[i] + son.second;flag = 1;}}}}flag ? yes : no;
}
signed main()
{//cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}
#include <iostream>
#include <algorithm>
#include<cstring>
#include <iomanip>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <utility>
#include <array>
#include <tuple>
using namespace std;
#define int long long
#define yes cout << "YES" << endl
#define no cout << "NO" << endlvoid solve()
{int n, m;cin >> n >> m;vector<vector<pair<int,int>>> g(n + 1);for (int i = 0; i < m; i++){int u, v, w;cin >> u >> v >> w;if (w >= 0){g[u].push_back({ v,w });g[v].push_back({ u,w });}else{g[u].push_back({ v,w });}}vector<int> dis(n + 1, 1e18);vector<int> vis(n + 1, 0);vector<int> cnt(n + 1, 0);queue<int> q;q.push(1);dis[1] = 0;vis[1] = 1;while (!q.empty()){auto t = q.front();q.pop();vis[t] = 0;for (auto son : g[t]){if (dis[son.first] > dis[t] + son.second){dis[son.first] = dis[t] + son.second;cnt[son.first] = cnt[t] + 1;if (cnt[son.first] >= n){yes;return;}if (!vis[son.first])q.push(son.first), vis[son.first] = 1;}}}no;
}
signed main()
{//cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

 

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

相关文章:

  • 宝安大型商城网站建设企业营销策划案例
  • 广州建设网站是什么关系seo建站系统
  • 用什么网站可以做百度公司推广电话
  • wordpress建站需要学什么seo推广软件代理
  • 个人做的小网站需要备案福州百度推广排名优化
  • 帝国网站管理怎样上传css样式电商培训心得体会
  • 山东做网站的公司有哪些河南网络推广那家好
  • h5制作软件 知乎360网站排名优化
  • 拱墅网站建设建站工具有哪些
  • 汝州网站建设汝州什么是域名
  • 模板网站是啥意思百度app大全
  • 做房产网站青岛推广优化
  • 做淘宝的网站有哪些内容百度关键词搜索技巧
  • 西安在线网站制作今日热点新闻15条
  • 吉林哪里做网站朋友圈推广
  • 广州短视频网站开发网页设计框架图
  • 平台网站建设意见征求表推广网站
  • 做单机游戏破解的网站网络推广专家
  • 网站背景磨砂灰背景怎么做qq推广网站
  • 成都网站建设河马建站企业网站建设要多少钱
  • wordpress底部小工具seo学徒是做什么
  • 经典页游排行榜前十名厦门网站流量优化价格
  • 宁波网站设计站长素材免费下载
  • 怎样做微网站新手怎么做电商运营
  • 网站建设明薇通网络不错seo品牌优化
  • 电商网站设计风格和内容如何做好线上推广
  • 建设企业网站的需求分析个人模板建站
  • 国内气膜馆建造商石家庄谷歌seo
  • 热 动漫-网站正在建设中-手机版百度竞价登录
  • 保定软件开发网站制作seo的优化原理