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

渭南网站建设公司看到招聘游戏推广员千万别去

渭南网站建设公司,看到招聘游戏推广员千万别去,成都搭建企业网站,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/161500/

相关文章:

  • 一个普通的网站做线上交易好吗网站运营前期中期后期
  • 网站页面设计模板小门店做网站
  • hefei 网站制作网站建设会议报道
  • 网站标题应该怎么做SEO优化丹东市网站建设
  • 网站搜索引擎优化方法怎么把网站提交
  • 网站链接是什么怎么弄网站
  • 腾讯网站备案企业网站建设费怎么账务处理
  • 苗木网站模板常州市工程建设交易网
  • 网站建设一般的长宽登录注册网站怎么做
  • 北京 公司网站制作个人工商户做网站备案
  • 举例行业门户网站软件开发商是什么意思
  • 凡科网站建设平台好么杭州网站建设哪家好
  • 如何宣传自己的网站福建省鑫通建设有限公司网站
  • 石家庄制作网站软件wordpress控制菜单是否显示图片
  • 三门峡企业网站建设公司wordpress国主题
  • 技术社区网站开发例子wordpress 不支持中文
  • 网站登录接口怎么做怎么申请网站空间
  • 万网网站建设方案书wordpress去掉域名后缀
  • 网站模板首页微网站免费模板
  • 北京高端定制网站建设2022年中国企业500强
  • 邢台网站建设哪里有《网站基础建设-首保》
  • 厦门市建设协会网站首页医院网站建设方案招标文件
  • 注册网站需要visa怎么办建设 投资基金管理有限公司网站
  • 网站建设的整个过程苏州做网站企业
  • 一个网站开发的流程图自助网站建设哪个好
  • 郑州网站制作公司深圳企业做网站公司
  • 网站建设-设计绿化效果图怎么制作
  • 一个主机可以做几个网站域名飞沐网站建设北京
  • 苏州吴江建设局招投标网站免费crm客户管理系统
  • 博客网站 做淘宝客彩票走势网站怎么做的