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

怎样设置网站网站制作优化排名

怎样设置网站,网站制作优化排名,推荐个做兼职的网站,建筑施工图纸全套P3385 【模板】负环 - 洛谷 题目描述 给定一个 n 个点的有向图,请求出图中是否存在从顶点 1 出发能到达的负环。 负环的定义是:一条边权之和为负数的回路。 输入格式 本题单测试点有多组测试数据。 输入的第一行是一个整数 T,表示测试数…

P3385 【模板】负环 - 洛谷

题目描述

给定一个 n 个点的有向图,请求出图中是否存在从顶点 1 出发能到达的负环。

负环的定义是:一条边权之和为负数的回路。

输入格式

本题单测试点有多组测试数据。

输入的第一行是一个整数 T,表示测试数据的组数。对于每组数据的格式如下:

第一行有两个整数,分别表示图的点数 n 和接下来给出边信息的条数 m。

接下来 m 行,每行三个整数 u,v,w。

  • 若 w>0,则表示存在一条从 u 至 v 边权为 w 的边,还存在一条从 v 至 u 边权为 w 的边。
  • 若 w<0,则只表示存在一条从 u 至 v 边权为 w 的边。

输出格式

对于每组数据,输出一行一个字符串,若所求负环存在,则输出 YES,否则输出 NO

输入输出样例

输入 #1

2
3 4
1 2 2
1 3 4
2 3 1
3 1 -3
2 3
1 2 3
2 3 4
3 1 -8

输出 #1

NO
YES

说明/提示

数据规模与约定

对于全部的测试点,保证:

  • 1≤n≤2×103
  • 1≤m≤3×103
  • 1≤u,v≤n
  • −104≤w≤104
  • 1≤T≤10

提示

请注意,m 不是图的边数。

思路:

SPFA算法原理

SPFA算法是Bellman-Ford算法的队列优化版本,用于求解单源最短路径问题,特别适用于存在负权边的图。算法的基本思想是:

  1. 初始化:将源点到所有点的最短路径估计值初始化为无穷大(或一个很大的数),源点到自身的距离初始化为0,并将源点加入队列。
  2. 松弛操作:每次从队列中取出一个点,对该点的所有邻接点进行松弛操作。如果通过当前点能够找到更短的路径到达邻接点,则更新邻接点的最短路径估计值,并将邻接点加入队列(如果它不在队列中)。
  3. 重复执行:不断重复上述松弛操作,直到队列为空。

负环的性质

负环是指图中存在一个环,环上的边权之和为负数。负环的存在会导致最短路径问题无解,因为可以无限次地通过负环来减小路径长度。

SPFA判断负环的原理

在SPFA算法中,如果图中存在负环,那么算法在松弛操作时会不断地更新负环上点的最短路径估计值,并将这些点反复加入队列。具体来说,如果一个点被松弛了多次(超过图中节点的总数),说明该点可能位于一个负环上,因为正常情况下,从一个点到另一个点的最短路径不会经过超过图中节点总数的边数(在最短路径中,每个节点最多被经过一次,除非存在环)。

为了检测负环,SPFA算法在执行过程中会记录每个点进入队列的次数。如果一个点进入队列的次数超过了图中节点的总数,就可以判定图中存在负环。

算法实现细节

在实际实现中,SPFA算法通常使用一个计数器数组来记录每个点进入队列的次数。在松弛操作时,如果更新了某个点的最短路径估计值,并且该点不在队列中,就将其加入队列,并增加其计数器值。最后,检查所有点的计数器值,如果存在超过图中节点总数的计数器值,就返回存在负环的结果。

代码如下:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <cstring>
using namespace std;
typedef long long ll;
const ll N = 2e5 * 5 + 5;
ll tot = 0;
ll n, m, s;
struct Edge{ll next,to,w;
}e[N];
ll head[N],dis[N]; 
void add(ll u,ll v,ll w)
{tot++;e[tot].next = head[u];e[tot].to = v;e[tot].w = w;head[u] = tot;
}
void spfa()
{queue<ll> q;q.push(s);memset(dis,0x3f,sizeof dis);dis[s]=0;while(!q.empty()){ll pos = q.front();q.pop();ll u = head[u];while(u != -1){ll to = e[u].to;ll w = e[u].w;if(dis[to] > w + dis[pos]){dis[to] = w + dis[pos];q.push(to);}}}
}
int main()
{cin >> n >> m >> s;for(ll i = 1 ; i <= m ; i++){ll u,v,w;cin >> u >> v >> w;add(u,v,w);}spfa();return 0;
}

http://www.ds6.com.cn/news/112985.html

相关文章:

  • 2018年公司做网站注意事项如何把品牌推广出去
  • 做网站时怎样图片上传怎么才能让图片不变形_有什么插件吗西安网站建设哪家好
  • 上海网站建设空间关键词排名优化公司外包
  • 做社交网站的预算统计工具
  • 欧美只做les 网站免费推广网站注册入口
  • 潍坊哪里做网站好宁波技术好的企业网站制作
  • wordpress插件 缩略图seo策划
  • 广州网站建设网络推广河北seo公司
  • 北京市住房及城乡建设网站外包seo公司
  • 3d效果图设计制作武汉网站seo推广
  • 微网站模板代码电话营销话术
  • 建立网站顺序2023年7月疫情爆发
  • 网站建设定制单网站链接推广工具
  • 域名过期网站还有用吗中国体育新闻
  • 建一个手机网站需要多少钱百度网盘搜索引擎网站
  • 设计网站公司 都赞湖南岚鸿案例10游戏优化大师
  • 微信小程序怎么做网站人员优化方案怎么写
  • 织梦装修设计网站模板营销策略有哪些理论
  • 建站模板wordpress哪里有网站推广优化
  • 网店服务平台seo关键词快速排名
  • 东莞网站开发培训哪里有网址浏览大全
  • 如何做彩票网站的源码徐州seo外包
  • 企业网站建设公司制作平台百度官网认证
  • 上海专业高端网站建设服务器池州网站seo
  • 演示动画制作免费网站定制网站+域名+企业邮箱
  • 西城改版网站自助建站平台
  • 做网站项目时 需求分析的内容百度指数批量
  • 创新网站建设工作百度浏览器官方下载
  • 李沧区城市建设管理局网站河南seo推广
  • 昆明的房产网站建设武汉seo学徒