poj3259,简单判断有无负环,spfa
英语能力差!百度的题意才读懂!就是一个判断有无负环的题。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的更多相关文章
- POJ-3259 Wormholes---SPFA判断有无负环
题目链接: https://vjudge.net/problem/POJ-3259 题目大意: 农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的 ...
- Wormholes 最短路判断有无负权值
Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...
- Spfa【p3385】【模板】负环(spfa)
顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述 毒瘤数据要求判负环 分析: 还是融合了不少题解的思想的. 负环定义: 权值和为负的环 //在网络上并没有找到一个官方定义,暂且这么理解. ...
- [P3385]【模板】负环 (spfa / bellman-ford)
终于开始认真对待图论了 因为听说一直是提高组的,动得很少,直到现在机房打提高的氛围下,开始学一些皮毛的东西 模板题目链接 这是一道求负环的题目,照理来说大家都是用spfa来判断负环的 但是我觉得bel ...
- 【BZOJ4773】负环 [SPFA][二分]
负环 Time Limit: 100 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 在忘记考虑负环之后,黎瑟的算法又出错 ...
- 洛谷P3385判负环——spfa
题目:https://www.luogu.org/problemnew/show/P3385 两种方法,dfs和bfs: 一开始写的dfs,要把dis数组初值赋成0,这样从一个连着负边的点开始搜: 在 ...
- 负环--spfa
洛谷板子题 负环?是有负权边的环还是一个边权之和为负的环? 还没有准确的定义(那就先忽略吧qwq 判断负环的方法: 暴力枚举/spfa/mellman—ford/奇怪的贪心/超神的搜索 可惜我只会sp ...
- 洛谷 P3385 【模板】负环 (SPFA)
题意:有一个\(n\)个点的有向图,从\(1\)出发,问是否有负环. 题解:我们可以用SPFA来进行判断,在更新边的时候,同时更新路径的边数,因为假如有负环的话,SPFA这个过程一定会无限重复的遍历这 ...
- luogu3385 负环 (spfa)
我在做spfa的时候,如果有一个点被更新了超过N次,证明这个图里是有负环的. (神TM输出YE5和N0) #include<bits/stdc++.h> #define pa pair&l ...
随机推荐
- 不全屏显示、手柄不居中的SlidingDrawer
SlidingDrawer是一个滑动式抽屉,通过点击或拖拽手柄(handle)来显示或隐藏内容(content). 看了很多关于SlidingDrawer的例子,但基本都是全屏显示,并且手柄居中的.我 ...
- http响应头状态描述
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收,继续处理2xx:成功--表示请求已被成功接收.理解.接受3xx:重定向--要完成请求必须进行更 ...
- Android(java)学习笔记180:多媒体之图形的变化处理
1. 图形的缩放 (1)布局文件activity_main.xml如下: <LinearLayout xmlns:android="http://schemas.android.com ...
- About the iOS File System
两个维度: 1)是否给用户使用: 2)是否持久存储. During installation of a new app, the installer creates a number of conta ...
- 1.3 jieba中文处理+安装
第一次接触这个工具,是在研一上学期的一门课里.由于要做课程设计论文,我当时选择做中文分词处理,自然而然就接触到这个工具了. 但是呢,由于研究生研究方向与NLP无关,也就没有深入的研究过. 现在由于工作 ...
- 世平信息(W 笔试)
选择题 大题 1.启动Thread的方法有几种 算法题 1.写出冒泡排序算法
- golang结构体排序 - 根据下载时间重命名本地文件
喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]根据文件下载创建时间,顺序重命名文件,方便后续播放. 源码如下:package main import ( &quo ...
- 我的app自动化实战练习一
''' -*- coding: utf-8 -*- @Time : 2019/6/10 0010 10:39 @Author : 无邪 @File : test_data.py @Software: ...
- redis.conf介绍
默认配置文件: # Redis configuration file example. # # Note that in order to read the configuration file, R ...
- function语句注意事项
function语句 在Javascript中定义一个函数,有两种写法: function foo() { } 和 var foo = function () { } 两种写法完全等价.但是在解析的时 ...