馬上就退役了,時間不足就不多介紹了

反正DFS是會T飛的,BFS就沒關係了qwq

#include<cmath>
#include<queue>
#include<cstdio>
#include<iostream>
#include<algorithm>
#define rg register
#ifdef _WIN32
#define lld "I64d"
#else
#define lld "%lld"
#endif
using namespace std;
inline long long read(){
long long a=0; int f=0; char c=getchar();
while(c<'0'||c>'9') { f|=c=='-'; c=getchar(); }
while(c>='0'&&c<='9') { a=(a<<3)+(a<<1)+(c^48); c=getchar(); }
return f? -a:a;
}
int t,n,m,fir[2002],dis[2002],cnt,q[6000006],head,tail,num[2002];
bool vis[2002],flag;
struct edge{int v,w,nxt;} e[6006];
void add(int x,int y,int z){
e[++cnt].v=y,e[cnt].w=z,e[cnt].nxt=fir[x],fir[x]=cnt;
}
bool spfa(){
while(head<tail){
int u=q[++head]; vis[u]=0;
if(num[u]>n) return 1;
for(int i=fir[u],v;v=e[i].v,i;i=e[i].nxt){
if(dis[v]>dis[u]+e[i].w){
dis[v]=dis[u]+e[i].w,num[v]=num[u]+1;
if(num[v]>n) return 1;
if(!vis[v]) vis[v]=1,q[++tail]=v;
}
}
}
return 0;
}
int main(){
// freopen("testdata.in","r",stdin);
// freopen("qaq.txt","w",stdout);
t=read();
while(t--){
n=read(),m=read();
for(int i=1;i<=n;++i) dis[i]=214748364,q[i]=0,vis[i]=0,fir[i]=0;
cnt=0,q[1]=1,head=0,tail=1,num[1]=vis[1]=1,dis[1]=0;
for(int i=1,x,y,z;i<=m;++i){
x=read(),y=read(),z=read(),add(x,y,z);
if(z>=0) add(y,x,z);
}
if(spfa()) printf("YE5\n");
else printf("N0\n");
}
return 0;
}

  

SPFA判負環的更多相关文章

  1. dfs找負環

    某些無良出題人可能會卡bfs找負環,所以要用dfs 核心代碼(以jzoj5173為例): #include<bits/stdc++.h> using namespace std; #def ...

  2. POJ 3259 Wormholes(SPFA判负环)

    题目链接:http://poj.org/problem?id=3259 题目大意是给你n个点,m条双向边,w条负权单向边.问你是否有负环(虫洞). 这个就是spfa判负环的模版题,中间的cnt数组就是 ...

  3. Poj 3259 Wormholes(spfa判负环)

    Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 42366 Accepted: 15560 传送门 Descr ...

  4. poj1860(spfa判正环)

    题目连接:http://poj.org/problem?id=1860 题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 money=(nowmoney-手续费)*rat ...

  5. spfa判负环

    bfs版spfa void spfa(){ queue<int> q; ;i<=n;i++) dis[i]=inf; q.push();dis[]=;vis[]=; while(!q ...

  6. poj 1364 King(线性差分约束+超级源点+spfa判负环)

    King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14791   Accepted: 5226 Description ...

  7. 2018.09.24 bzoj1486: [HNOI2009]最小圈(01分数规划+spfa判负环)

    传送门 答案只保留了6位小数WA了两次233. 这就是一个简单的01分数规划. 直接二分答案,根据图中有没有负环存在进行调整. 注意二分边界. 另外dfs版spfa判负环真心快很多. 代码: #inc ...

  8. 2018.09.12 poj3621Sightseeing Cows(01分数规划+spfa判环)

    传送门 01分数规划板题啊. 发现就是一个最优比率环. 这个直接二分+spfa判负环就行了. 代码: #include<iostream> #include<cstdio> # ...

  9. 2018.09.09 poj2949Word Rings(01分数规划+spfa判环)

    传送门 这题要先巧妙的转化一下. 对于每个字符串,我们把头尾的两个小字符串对应的点连边,边权是这个字符串的长度. 这样最多会出现26*26个点. 这个时候就只用求出边权和跟边数的最大比值了. 这个显然 ...

随机推荐

  1. c#调用c++库函数

    如果是非托管的,就用DllImport,举例    using System;    using System.Runtime.InteropServices;    class MainApp    ...

  2. 关于 logger

    日志 前言 我是一名后台程序员,接触后台只有一年时间,在这期间一共做过四个项目,分别是: 工作室招新系统 视频学习网站 创客网站 打印机项目 由于之前做项目的时候没有好好重视日志,所以导致在开发与维护 ...

  3. 成都Uber优步司机奖励政策(3月22日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. MySQL 存储过程常用SQL语句收集

    1,select curdate() /*2016-10-08*/ 2,select date_sub(curdate(), INTERVAL 6 DAY) /*2016-10-02*/ 3,case ...

  5. CF 1033 C. Permutation Game

    C. Permutation Game http://codeforces.com/contest/1033/problem/C 题意: 一个排列,每个位置i走到的位置j满足:a[j]>a[i] ...

  6. 使用element-ui 的table 渲染数据遇到的问题

    通常我们使用一个table 来渲染服务的返回来的数据时,数据结构一般都是按row 来返回的,并且表头也是固定的 但是如果接口返回的数据结构不是我们想要的,表头也不确定时,我们该如何解析数据,将数据进行 ...

  7. VIO 初始化小结 - 10.17

    最近几个月忙于博士毕业,找工作一直没有继续更新博客,希望以这一篇开始,每个月能够继续有几篇总结博客. 首先review一下比较著名的vio系统 Tightly coupled EKF: mainly ...

  8. CLR via c#读书笔记八:泛型

    1.定义泛型类型或方法时,为类型指定的任何变量(比如T)都称为类型参数.使用泛型类型或方法时指定的具体数据类型称为类型实参. 2.System.Collections.Concurrent命名空间提供 ...

  9. Drupal 判断匿名用户必须先登录的解决方法

    要实现如果是匿名用户点击checkout链接,要求先登录 方案一.通过添加Rules规则实现 EVENT:After adding a product to the cart Conditions : ...

  10. 远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务

    WeTest 导读 随着城市发展趋向智慧化,不仅移动互联网应用正迅速融入出行.金融.医疗.娱乐等传统行业,跟随移动互联网成长起来的,还有用户对应用使用与消费的理性意识. 而在用户不断增加的同时,如何避 ...