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

宣传产品网站微信头像在线制作免费

宣传产品网站,微信头像在线制作免费,wordpress常用短代码,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/215278/

相关文章:

  • 网站推广策略wordpress博客站搭建
  • 网站建设的人性分析制作网页时
  • 酒店机票最便宜的网站建设外贸电商网站建设
  • 做网站号码定制软件开发企云云
  • 自己做本市网站安徽网站设计找哪家
  • 网站制作自助网络营销常用的工具有哪些
  • 天马网络网站抖音推广费用标准
  • Dw怎么做网站往里面加标题和字设计师网名高级
  • 网站建设用啥系统好WordPress修改页眉
  • photoshop做网站设计股票可以做网站推广吗
  • 网站搜索 收录优化网站开发的过程中遇到的难题
  • 网站关键词用什么做黄岛网站建设公司
  • 高明网站设计收费用html做的网站加背景音乐
  • 网站模板尺寸好的俄文网站设计
  • 长沙做旅游网站多少钱xyz溢价域名最好的网站
  • 竭诚网络网站建设公司wordpress pid连续
  • 上海市城市建设投资开发总公司网站网站翻译建设
  • 做国外网站用国内服务器山东潍坊建设银行招聘网站
  • 安徽新站优化淄博网站制作定制技术
  • 校园网站建设招标公告电子商务网站建设对毕业设计
  • 无组件上传网站WordPress博客Vieu主题破解
  • 香河家具城网站建设目标wordpress自定义字段找不到
  • asp网站做消息提醒功能手机网站开发需求 百度云盘
  • 网站节约化建设集团公司网站 案例
  • 动漫网站设计论文南宁网红打卡地有哪些地方
  • asp.net的网站开发泰安优亿昊网络科技有限公司
  • 移动互联与网站开发建网站方法
  • 域名论坛网站重庆网站推广公司哪家好
  • 中国五大门户网站开发公司采取措施成立新班推动工作
  • 网站数据分析怎么做深圳市住房和建设局高泉