正题


题目大意

求点1可不可以走到负环。


解题思路

用cnticnt_icnti​表示到iii的最短路经过了多少个点,然后求若cnti≥ncnt_i\geq ncnti​≥n且这条路是负数那么就有负环。


codecodecode

#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
const int N=2100,M=3100;
struct node{int to,next,w;
}a[M*2];
queue<int> q;
int n,m,tot,ls[N],f[N],cnt[N],T;
bool v[N];
void addl(int x,int y,int w)
{a[++tot].to=y;a[tot].next=ls[x];a[tot].w=w;ls[x]=tot;
}
bool spfa()
{memset(f,0x3f,sizeof(f));memset(cnt,0,sizeof(cnt));q.push(1);cnt[1]=1;f[1]=0;v[1]=1;while(!q.empty()){int x=q.front();v[x]=0;q.pop();for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(f[x]+a[i].w<f[y]){f[y]=f[x]+a[i].w;cnt[y]=cnt[x]+1;if(cnt[y]>=n&&a[i].w<0)return true;if(!v[y]){v[y]=1;q.push(y);}}} }return false;
}
int main()
{scanf("%d",&T);while(T--){ memset(ls,0,sizeof(ls));tot=0;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y,w;scanf("%d%d%d",&x,&y,&w);addl(x,y,w);if(w>=0) addl(y,x,w);}if(spfa()) printf("YE5");else printf("N0");putchar('\n');}
}

P3385-[模板]负环【SPFA】相关推荐

  1. P1768-天路【负环,SPFA,01分数规划,二分答案】

    正题 题目链接:https://www.luogu.org/problemnew/show/P1768 题目大意 求一条回路使得路上∑vi∑pi\frac{\sum v_i}{\sum p_i}∑pi ...

  2. 负环——spfa判断负环的两种方式

    第一种:(不推荐) 统计每个点的入队次数,如果某一个点入队了n次,则说明存在负环. 第二种: 统计当前每个点的最短路的边数,如果存在负环,负环上的某一个点的最短路边数一定会是正无穷,只要边数超过n(节 ...

  3. POJ1201-Intervals【差分约束,负环,SPFA】

    正题 题目链接:http://poj.org/problem?id=1201 题目大意 求一个最少数量的数字集合满足 在li∼ril_i\sim r_ili​∼ri​的范围的数字至少是cic_ici​ ...

  4. 神机百炼2.50-负环SPFA

    负环SPFA 食用指南: 题目描述: 题目分析: 算法原理: 模板算法: 负环SPFA: 1. 负环可能存在哪里? 2. 存储形式: 3. 负环检测原理: 写作步骤: 1. 初始化: 2. 出队&am ...

  5. P3385 【模板】负环

    https://www.luogu.com.cn/problem/P3385 这个和普通的判负环有点区别.普通的判负环是判断有没有负环即可. 这个的判负环是从1出发的负环. 故得将距离初始化为无穷,然 ...

  6. Luogu P3385 【模板】负环 - 题解

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

  7. POJ 3259 Wormholes【最短路/SPFA判断负环模板】

    农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ...

  8. 模板 - 判断负环(超时高效优化技巧)、01分数规划

    整理的算法模板合集: ACM模板 判断负环 判正环求最长路,判负环求最短路 int n; // 总点数 int h[N], w[N], e[N], ne[N], idx; // 邻接表存储所有边 in ...

  9. 算法提高课-图论-负环-AcWing 361. 观光奶牛:spfa判正环、负环、01分数规划、二分

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 题目要求ΣfiΣgi\frac{\Sigma{f_i}}{\Sigma{g_i}}Σgi​Σfi​​的最大值,这种问题称为01分数规 ...

  10. spfa 判断负环 (转载)

    当然,对于Spfa判负环,实际上还有优化:就是把判断单个点的入队次数大于n改为:如果总的点入队次数大于所有点两倍 时有负环,或者单个点的入队次数大于sqrt(点数)有负环.这样时间复杂度就降了很多了. ...

最新文章

  1. Mac(OS X)安装、配置并使用MySQL数据库
  2. 实现基于AD的MOSS的FORM认证方式
  3. 什么是缩量、放量、堆量
  4. Uva 11395 Sigma Function (因子和)
  5. 什么叫做蓝牙技术(转贴)
  6. easymock+junit+spring学习·
  7. python爬虫难度排行榜_无聊写了一个python爬虫程序,用来爬夕阳试炼场排行榜的...
  8. Auto.js找图找色常用功能
  9. 苹果放弃Intel基带应是大概率事件
  10. 抖音神曲《一百万个可能》:“在一瞬间,我们有一百万个可能”
  11. 玩游戏提升计算机内存不足,电脑内存不足怎么办?详细解决方案.
  12. jvm-sandbox:基础了解及demo演示
  13. RabbitMQ在Windows环境下的服务启动问题
  14. 读书 | 每天演好一个情绪稳定的成年人
  15. Win10 10074 版本无法连接 BT 鼠标
  16. Eeprom(at24c04)调试小记
  17. 学习Java的学习顺序
  18. 网卡限速工具之WonderShaper
  19. 【STM32F407】第8章 ThreadX NetXDUO之TCP服务器
  20. 蓝牙定位方案之Ibeacon定位技术解决方案-新导智能

热门文章

  1. linux命令apprw,linux命令学习1(示例代码)
  2. php文件上传实验总结,53 PHP文件处理(六)文件上传--总结---细说php
  3. 百度广告点击软件_结束了,百度 “毒瘤” 广告!
  4. yolo算法的优缺点分析_yolo算法介绍
  5. .net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...
  6. 算法题目中经典问题(易错点)
  7. 7-1 作业调度算法--先来先服务 (30 分)(思路+详解+vector+map+map做法)Come Baby!!!!!!!!!!!
  8. 突破冯诺依曼原理的计算机,冯诺依曼计算机的基本原理
  9. C++ class实现双亲表示法
  10. C++set容器-插入和删除