P3385 【模板】负环(SPFA)
题目链接:https://www.luogu.com.cn/problem/P3385
题解
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long ll;
int t,n;
int m;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>t;
while(t--)
{
cin>>n>>m;
vector<vector<pair<int,int>>>graph(n+1);
vector<int>dis(n+1,INT_MAX);
vector<bool>enter(n+1,false);
queue<int>que;
vector<int>update(n+1,0);
for(int i=0;i<m;i++)
{
int u,v,w;
cin>>u>>v>>w;
if(w>=0)
{
graph[u].push_back({v,w});
graph[v].push_back({u,w});
}
else
{
graph[u].push_back({v,w});
}
}
dis[1]=0;
que.push(1);
enter[1]=true;
update[1]=1;
int cmd=0;
while(!que.empty())
{
int x = que.front();
enter[x]=false;
que.pop();
for(auto edge:graph[x])
{
int to = edge.first;
int ww = edge.second;
if(dis[to]>dis[x]+ww)
{
dis[to]=dis[x]+ww;
if(!enter[to])
{
update[to]++;
que.push(to);
enter[to]=true;
}
}
if(update[to]>=n)
{
cmd=1;
break;
}
}
if(cmd==1)break;
}
if(cmd==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
P3385 【模板】负环(SPFA)的更多相关文章
- 洛谷P3385 [模板]负环 [SPFA]
题目传送门 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个 ...
- 洛谷P3385判负环——spfa
题目:https://www.luogu.org/problemnew/show/P3385 两种方法,dfs和bfs: 一开始写的dfs,要把dis数组初值赋成0,这样从一个连着负边的点开始搜: 在 ...
- LG P2285 [模板]负环(spfa判负环)
题目描述 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入格式 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个顶点,M条边 接下来M行,每 ...
- [P3385]【模板】负环 (spfa / bellman-ford)
终于开始认真对待图论了 因为听说一直是提高组的,动得很少,直到现在机房打提高的氛围下,开始学一些皮毛的东西 模板题目链接 这是一道求负环的题目,照理来说大家都是用spfa来判断负环的 但是我觉得bel ...
- 【洛谷 P3385】模板-负环(图论--spfa)
题目:有一个图有N个顶点,M条边.边用三个整数a b w表示,意思为a->b有一条权值为w的边(若w<0则为单向,否则双向).共T组数据.对于每组数据,存在负环则输出一行"YE5 ...
- Spfa【p3385】【模板】负环(spfa)
顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述 毒瘤数据要求判负环 分析: 还是融合了不少题解的思想的. 负环定义: 权值和为负的环 //在网络上并没有找到一个官方定义,暂且这么理解. ...
- 洛谷 P3385 【模板】负环 (SPFA)
题意:有一个\(n\)个点的有向图,从\(1\)出发,问是否有负环. 题解:我们可以用SPFA来进行判断,在更新边的时候,同时更新路径的边数,因为假如有负环的话,SPFA这个过程一定会无限重复的遍历这 ...
- 【洛谷P3385】模板-负环
这道题普通的bfs spfa或者ballen ford会T 所以我们使用dfs spfa 原因在于,bfs sfpa中每个节点的入队次数不定,退出操作不及时,而dfs则不会 既然,我们需要找负环,那么 ...
- luogu3385 负环 (spfa)
我在做spfa的时候,如果有一个点被更新了超过N次,证明这个图里是有负环的. (神TM输出YE5和N0) #include<bits/stdc++.h> #define pa pair&l ...
- 【BZOJ4773】负环 [SPFA][二分]
负环 Time Limit: 100 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 在忘记考虑负环之后,黎瑟的算法又出错 ...
随机推荐
- 新纪元:"老"新人
博客园注册很久了,但从未发布过内容.终于开通博客,记录自己,也支持博客园! 另外,这次苹果秋季发布会真的好无聊!︎
- 「硬核科普」C++11锁机制三兄弟大比拼:mutex、lock_guard与unique_lock
大家好啊,我是小康.今天咱们聊点"家常"--那些让C++程序员又爱又恨的多线程同步工具! 如果你曾经被多线程搞得头大,或者听到"死锁"就心慌,那这篇文章就是为你 ...
- 中国象棋小游戏(C版)
中国象棋小游戏(C版) 说明: #include<graphics.h> 一个在 C/C++ 中用于图形编程的头文件,主要用于创建和操作图形界面.具有绘制图形.设置颜色.鼠标和键盘时间处理 ...
- 第5讲、Transformer 编码器(Encoder)处理过程详解
Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构.每一层的本质是两个核心子模块: 多头自注意力 ...
- Python实现http接口请求数据后,往RabbitMQ里面插入数据
python实现http接口请求数据服务后,往RABBITmq里面插入数据 import time import requests import pika import datetime base_u ...
- odoo接口
@http.route('/zimo_lunch/select/<string:db_name>', type='http', auth='none')def trash_demo(sel ...
- Faray 数列问题
首先,Farey 数列 \(F_n\) 表示分母不超过 \(n\) 的所有既约真分数按大小顺序排列的集合,形式化来说 \[F_n = \left\{\frac{p}{q} \bigg\vert 0 & ...
- 解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)
1. 引言 在上一篇文章<使用Vditor将Markdown文档渲染成网页(Vite+JS+Vditor)>中,详细介绍了通过Vditor将Markdown格式文档渲染成Web网页的过程, ...
- 【转载】controller-runtime之manager的实现
介绍 在controller-runtime中使用一个 Manager 的接口来管理 Controller,除了控制器其实还可以管理A dmission Webhook,也包括访问资源对象的clien ...
- Java变量类型识别
方法: 1.反射方式,成员变量的类型判断2.isInstance用法3.利用泛型识别类型一.新建测试类 import java.util.Date; import com.cxyapi.generic ...