传送门

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#define re register
using namespace std;
const int maxn = 2005;
const int maxm = 3005; inline int read(){
char ch = getchar();
int f = 1 , x = 0 ;
while(ch > '9' || ch < '0') {if(ch == '-' ) f = -1 ; ch = getchar();}
while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + ch - '0' ;ch = getchar();}
return x * f;
} int T,n,m,u,v,w;
int head[maxn],tot;
bool flag; struct Edge{
int from , to , next , val;
}edge[maxm << 1]; inline void add(int u , int v , int w){
edge[++tot].from = u ;
edge[tot].to = v;
edge[tot].val = w;
edge[tot].next = head[u];
head[u] = tot;
} int dis[maxn],num[maxn];
bool vis[maxn]; inline bool spfa(int s){
for(re int i = 1 ; i <= n ; ++i) dis[i] = 1e9 ;
queue<int> q;
q.push(s);
dis[s] = 0;
num[s]++;
vis[s] = true;
while(!q.empty()){
int cur = q.front();
q.pop(); vis[cur] = 0;
for(re int i = head[cur] ; i ; i = edge[i].next) {
int v = edge[i].to ;
if(dis[v] > dis[cur] + edge[i].val) {
dis[v] = dis[cur] + edge[i].val;
if(!vis[v]) {
q.push(v);
num[v]++;
vis[v] = true;
if(num[v] > n) return false;
}
}
}
}
return true;
} int main(){
T = read();
while(T--){
memset(dis , 0 , sizeof(dis));
memset(edge , 0 ,sizeof(edge));
memset(num , 0 , sizeof(num));
memset(head , 0 , sizeof(head));
memset(vis , 0 , sizeof(vis));
tot = 0;
flag = 0;
n = read(); m = read();
for(re int i = 1 ; i <= m ; ++i){
u = read(); v = read(); w = read();
if(w < 0) add(u , v , w);
else {
add(u , v , w);
add(v , u , w);
}
}
if(spfa(1)) printf("N0\n");
else printf("YE5\n");
}
return 0;
}

洛谷P3385负环的更多相关文章

  1. ACM - 图论 - P3385 负环

    P3385 负环 题目描述 给定一个 \(n\) 个点的有向图,请求出图中是否存在从顶点 \(1\) 出发能到达的负环. 负环的定义是:一条边权之和为负数的回路. 输入格式 本题单测试点有多组测试数据 ...

  2. 洛谷P3385 【模板】负环(DFS求环)

    洛谷题目传送门 HNOI爆零前回刷模板题 非常不正经的题目,目前并没有合适的优秀算法,就算是大家公认的dfs(还是不要强行叫dfs-spfa吧,概念应该不一样,这就是暴力dfs松弛答案) 但是对于随机 ...

  3. 洛谷P3385 [模板]负环 [SPFA]

    题目传送门 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个 ...

  4. 洛谷P3385判负环——spfa

    题目:https://www.luogu.org/problemnew/show/P3385 两种方法,dfs和bfs: 一开始写的dfs,要把dis数组初值赋成0,这样从一个连着负边的点开始搜: 在 ...

  5. 洛谷 P3385 【模板】负环

    P3385 [模板]负环 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M ...

  6. 洛谷 P3385 【模板】负环 题解

    P3385 [模板]负环 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入格式 第一行一个正整数T ...

  7. 【模板】负环(SPFA/Bellman-Ford)/洛谷P3385

    题目链接 https://www.luogu.com.cn/problem/P3385 题目大意 给定一个 \(n\) 个点有向点权图,求是否存在从 \(1\) 点出发能到达的负环. 题目解析 \(S ...

  8. 【洛谷P3385】模板-负环

    这道题普通的bfs spfa或者ballen ford会T 所以我们使用dfs spfa 原因在于,bfs sfpa中每个节点的入队次数不定,退出操作不及时,而dfs则不会 既然,我们需要找负环,那么 ...

  9. 【洛谷 P3385】模板-负环(图论--spfa)

    题目:有一个图有N个顶点,M条边.边用三个整数a b w表示,意思为a->b有一条权值为w的边(若w<0则为单向,否则双向).共T组数据.对于每组数据,存在负环则输出一行"YE5 ...

随机推荐

  1. Python pytagcloud 中文分词 生成标签云 系列(一)

    转载地址:https://zhuanlan.zhihu.com/p/20432734工具 Python 2.7 (前几天试了试 Scrapy 所以用的 py2 .血泪的教训告诉我们能用 py3 千万别 ...

  2. ssh或scp自动化问题

    http://note.youdao.com/noteshare?id=1ac4cb9469f818dbe579d721aae4e914

  3. 什么是Docker并且它为什么这么受欢迎

    什么是Docker (why it's so hot than hot) Docker是一个使用容器来方便快捷的创建,部署,运行程序的工具,容器允许开发人员将应用程序的一切打包(镜像),例如库和其他的 ...

  4. Laravel 限流中间件 throttle 简析

    1. 在Laravel 中配置 在 app\Http\Kernel.php 中,默认添加到中间件组 api 下,1分钟60次. 2. 限流原理 获取唯一请求来源,进行唯一标识(key) 获取该请求请求 ...

  5. Docker应用二:docker常用命令介绍

     Docker常用命令使用介绍 docker中常用的命令: 1.docker search image_name:搜查镜像 2.docker pull image_name:从镜像库中拉去镜像 3.d ...

  6. python 中的multiprocessing 模块

    multiprocessing.Pipe([duplex]) 返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,c ...

  7. 牛市必备的三个条件,A股现在还差几个

    1.国家政策 2.中美贸易 3.资金支持 A股变化如神! 自本月10日受美股大跌的影响后,A股先是随之震荡跳水,千股跌停:随后因高层力挺和政策支持而V型反转,集体涨停:接着上演过山车走势,有时涨得令人 ...

  8. 读懂复杂C声明的黄金法则

    在网上遇见felix,他让我读 http://www.felix021.com/blog/read.php?2072,读完之后觉得收获很大,需要练习一下. 黄金法则:从声明的变量开始,先向右看,再向左 ...

  9. 多页面应用_vue

    vue框架 vue:解决前端大型应用的开发,将之前几十个.几百个.更多的HTML页面,集成为1个HTML页面(当页面应用) jQuery:前端方法库. bootstrap:UI组件库. angular ...

  10. Linux基础之权限-你弄得明白吗?

    使用编辑文件passwd的方式添加用户natasha用户ID为1000,组ID为555 在shadow文件中添加natasha用户的信息 在group文件中添加natasha的属组ID为555 为na ...