英语能力差!百度的题意才读懂!就是一个判断有无负环的题。SPFA即可。,注意重边情况!!

#include<iostream>   //判断有无负环,spfa
#include<queue>
#include<cstring>
#include<cstdio>
using namespace std;
int mark[503];int a[503][503];int d[503];int num_in[503];
bool spfa(int n)
{
queue<int>q;
q.push(1);
d[1]=0;
num_in[1]++; //统计入队次数
while(!q.empty())
{
int cur=q.front();
q.pop();
if(num_in[cur]>=n)return 1; //大于n,结束,表示有负环
mark[cur]=0; //出队
for(int i=1;i<=n;i++)
{
if(a[cur][i]+d[cur]<d[i]) //能松弛的松弛
{
d[i]=a[cur][i]+d[cur];
if(mark[i]==0) //能松弛又不在队列中的要入队
{
mark[i]=1;
if(num_in[i]>=n)return 1;//大于n,结束,表示有负环
q.push(i);
num_in[i]++;
}
}
}
}
return 0;
}
int main()
{
int num,n,m,w;
scanf("%d",&num);
while(num--)
{
scanf("%d%d%d",&n,&m,&w);
memset(d,0x3f,sizeof(d));
memset(a,0x3f,sizeof(a));
memset(mark,0,sizeof(mark));
memset(num_in,0,sizeof(num_in));
int x,y;
for(int i=0;i<m;i++) //注意重边!
{
scanf("%d%d",&x,&y);
int temp; scanf("%d",&temp);
if(a[x][y]>temp)
{
a[x][y]=temp;
a[y][x]=a[x][y];
}
}
for(int i=0;i<w;i++)
{
scanf("%d%d",&x,&y);
int temp;scanf("%d",&temp);
temp=-temp;
if(a[x][y]>temp)
{
a[x][y]=temp;
}
}
if(spfa(n))printf("YES\n");
else printf("NO\n");
}
return 0;
}

poj3259,简单判断有无负环,spfa的更多相关文章

  1. POJ-3259 Wormholes---SPFA判断有无负环

    题目链接: https://vjudge.net/problem/POJ-3259 题目大意: 农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的 ...

  2. Wormholes 最短路判断有无负权值

    Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...

  3. Spfa【p3385】【模板】负环(spfa)

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述 毒瘤数据要求判负环 分析: 还是融合了不少题解的思想的. 负环定义: 权值和为负的环 //在网络上并没有找到一个官方定义,暂且这么理解. ...

  4. [P3385]【模板】负环 (spfa / bellman-ford)

    终于开始认真对待图论了 因为听说一直是提高组的,动得很少,直到现在机房打提高的氛围下,开始学一些皮毛的东西 模板题目链接 这是一道求负环的题目,照理来说大家都是用spfa来判断负环的 但是我觉得bel ...

  5. 【BZOJ4773】负环 [SPFA][二分]

    负环 Time Limit: 100 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 在忘记考虑负环之后,黎瑟的算法又出错 ...

  6. 洛谷P3385判负环——spfa

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

  7. 负环--spfa

    洛谷板子题 负环?是有负权边的环还是一个边权之和为负的环? 还没有准确的定义(那就先忽略吧qwq 判断负环的方法: 暴力枚举/spfa/mellman—ford/奇怪的贪心/超神的搜索 可惜我只会sp ...

  8. 洛谷 P3385 【模板】负环 (SPFA)

    题意:有一个\(n\)个点的有向图,从\(1\)出发,问是否有负环. 题解:我们可以用SPFA来进行判断,在更新边的时候,同时更新路径的边数,因为假如有负环的话,SPFA这个过程一定会无限重复的遍历这 ...

  9. luogu3385 负环 (spfa)

    我在做spfa的时候,如果有一个点被更新了超过N次,证明这个图里是有负环的. (神TM输出YE5和N0) #include<bits/stdc++.h> #define pa pair&l ...

随机推荐

  1. 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)

    /** ****************************************************************************** * @file main.c * ...

  2. Android-Emulator使用

    1.查看当前android支持的avd版本 2.创建Emulator avd: android create avd -n magicyu -t 2 -n后面接需要创建avd的名字,-t后面接需要创建 ...

  3. 解决异常System.Runtime.Interopservices.COMException RequestLock问题

    工具——导入导出设置,重置调试设置就可以了,这是调试文件的异常

  4. 大数据开发学习之构建Hadoop集群-(0)

    有多种方式来获取hadoop集群,包括从其他人获取或是自行搭建专属集群,抑或是从Cloudera Manager 或apach ambari等管理工具来构建hadoop集群等,但是由自己搭建则可以了解 ...

  5. 数据库管理系统X

    大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约 ...

  6. 关于mybatis的一些用法

    resultMap 的用法 <resultMap id="唯一标识" type="映射的pojo类"> <id column = " ...

  7. vs code 插件list

    vs code 插件list

  8. 异常:java.lang.NoClassDefFoundError: org/springframework/expression/ParserContext

    异常:java.lang.NoClassDefFoundError: org/springframework/expression/ParserContext 解决方案:缺少spring-expres ...

  9. C指针与数组之间的细节

    看以下代码: #include <stdio.h> void f(char**); int main() { char *argv[] = { "ab", " ...

  10. SDOI2011 拦截导弹

    题目描述 题解: 对于第一问,我们求二维LIS即可; 对于第二问,我们可以记录向前最长长度,向前最长方案数,向后最长长度,向后最长方案数. 其实改改树状数组即可. 还有,方案数一定要开double. ...