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

营销型品牌网站建设价格杭州做公司官网的公司

营销型品牌网站建设价格,杭州做公司官网的公司,网站被k有什么表现,wordpress自定义头像插件文章目录 负环spfa找负环方法一方法二实际效果 负环 环内路径上的权值和为负。 spfa找负环 两种基本的方法 统计每一个点的入队次数,如果一个点入队了n次,则说明存在负环统计当前每个点中的最短路中所包含的边数,如果当前某个点的最短路所…

文章目录

  • 负环
  • spfa找负环
  • 方法一
  • 方法二
  • 实际效果

负环

1707991801509.png
环内路径上的权值和为负。

spfa找负环

两种基本的方法

  1. 统计每一个点的入队次数,如果一个点入队了n次,则说明存在负环
  2. 统计当前每个点中的最短路中所包含的边数,如果当前某个点的最短路所包含的边数大于等于n,也说明存在负环

实际上两种方法是等价的,都是判断是否路径包含n条边, n n n条边的话就有 n + 1 n+1 n+1个点
用的更多的还是第二种方法。

方法一

c n t [ x ] : 表示 x 的入队次数 cnt[x]:表示x的入队次数 cnt[x]:表示x的入队次数

#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
#define inf 0x3f3f3f3f*1llusing namespace std;void solve()
{int n,m1,m2;cin>>n>>m1>>m2;vector<vector<pii>>g(n+1);rep(i,1,m1){int u,v,w;cin>>u>>v>>w;g[u].pb({v,w});g[v].pb({u,w});}	rep(i,1,m2){int u,v,w;cin>>u>>v>>w;g[u].pb({v,-w});}vector<int>inq(n+1,0);vector<int>cnt(n+1,0);vector<int>d(n+1,0);queue<int>q;rep(i,1,n){q.push(i);inq[i]=1;}while(q.size()){auto t=q.front();q.pop();int u=t;inq[u]=0;for(auto it:g[u]){int v=it.x,w=it.y;if(d[v]>d[u]+w){d[v]=d[u]+w;if(!inq[v]){q.push(v);inq[v]=1;cnt[v]++;if(cnt[v]>=n){cout<<"YES"<<endl;return;}}}}}cout<<"NO"<<endl;
}signed main(){ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//   	freopen("1.in", "r", stdin);int _;cin>>_;while(_--)solve();return 0;
}

方法二

c n t [ x ] : 表示从起点到 x 所经过的最短路径的边数 cnt[x]:表示从起点到x所经过的最短路径的边数 cnt[x]:表示从起点到x所经过的最短路径的边数

#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
#define inf 0x3f3f3f3f*1llusing namespace std;void solve()
{int n,m1,m2;cin>>n>>m1>>m2;vector<vector<pii>>g(n+1);rep(i,1,m1){int u,v,w;cin>>u>>v>>w;g[u].pb({v,w});g[v].pb({u,w});}	rep(i,1,m2){int u,v,w;cin>>u>>v>>w;g[u].pb({v,-w});}vector<int>inq(n+1,0);vector<int>cnt(n+1,0);vector<int>d(n+1,0);queue<int>q;rep(i,1,n){q.push(i);inq[i]=1;}while(q.size()){auto t=q.front();q.pop();int u=t;inq[u]=0;for(auto it:g[u]){int v=it.x,w=it.y;if(d[v]>d[u]+w){d[v]=d[u]+w;cnt[v]=cnt[u]+1;if(cnt[v]>=n){cout<<"YES"<<endl;return;}if(!inq[v]){q.push(v);inq[v]=1;}}}}cout<<"NO"<<endl;
}signed main(){ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//   	freopen("1.in", "r", stdin);int _;cin>>_;while(_--)solve();return 0;
}

实际效果

1707997993525.png
1707997579479.png
方法一跑出来的结果是 1024 m s 1024ms 1024ms
方法二跑出来的结果是 671 m s 671ms 671ms

http://www.yayakq.cn/news/313351/

相关文章:

  • 建网站可以铺货wordpress伪静态 插件
  • 北京网站设计公司兴田德润简介ppt模板免费下载素材图片
  • 技术支持 郑州做网站作品集怎么做网页
  • 网站admin目录名怎么改友情网站
  • .net网站吃内存做狗狗网站的背景图
  • 网站开发的认知互联网关键词优化
  • 阿里 网站建设方案书 模板新网个人网站备案
  • 做网站能赚到钱吗定制软件开发公司介绍
  • 做衣服视频有些什么网站枸杞网站怎么做
  • 南昌企业网站制作政务公开与网站建设工作总结存在问题和困难
  • 雅安网站制作徐州网站建设咨询
  • 网站建设的投资预算怎么写响应式设计的基本原理
  • 网站开发组织架构长春网站制作最新招聘信息
  • 做网站简约学校网站网站建设申请
  • 智能网站建设模板售后wordpress网站页面打开很慢
  • 网站推广需要数据整改吗前端角度实现网站首页加载慢优化
  • 境外电商网站建设施工企业会计制度2022
  • 教我做网站广东省企业诚信建设促进会网站
  • 口碑营销网站自适应网站价格
  • 网站续费问题做兼职做网站的是什么
  • 湘icp备 网站建设 农业 湖南廊坊企业网站建设
  • 企业网站功能描述wordpress 自动采集发布
  • 哪家装修公司比较好的简述seo的优势
  • 济南建站优化wordpress 如何改中文
  • j建设网站备案流程重庆建设工程招标
  • 中国城乡建设部网站房贴文件建站快车官网
  • 做前端网站用什么软件写代码吗如何安装网站模板文件
  • 卫浴网站设计哪些网站页面简洁
  • wordpress 建网站 vpn南昌网站建设基本流程
  • 谁会在掏宝网上做网站跑腿小程序怎么制作