题目链接:P3385 【模板】负环

缩点板子。

看日报上说\(DFS\)会炸(我确实打炸了),就根据他的说明\(yy\)了\(BFS\),多一个记录步数的数组即可(我用的\(len[]\)),若\(len_i>n\),就说明遁入无限的负环中了,返回即可,跑得比我那一页快人均\(200ms\)的样子(没有卡常)(其实一堆Unshown).

\(Code\):

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int inf=1e9;
int t,n,m,l,r,s;
int vis[2005],dis[2005];
int ans=0;
int len[2005];
struct node
{
int to,nxt,w;
}e[2005<<1];
int head[2005],cnt=0;
queue<int> q;
void init(int n)
{
while(!q.empty()) q.pop();
memset(vis,0,sizeof(vis));
memset(e,0,sizeof(e));
memset(head,0,sizeof(head));
for(int i=2;i<=n;i++) dis[i]=inf;
dis[1]=0;
vis[1]=1;
len[1]=0;
cnt=0;
}
void add(int u,int v,int c)
{
e[++cnt].to=v;
e[cnt].nxt=head[u];
e[cnt].w=c;
head[u]=cnt;
}
bool spfa()
{
q.push(1);
while(!q.empty())
{
int k=q.front();
q.pop();
vis[k]=0;
for(int i=head[k];i;i=e[i].nxt)
{
int j=e[i].to;
if(dis[j]>dis[k]+e[i].w)
{
dis[j]=dis[k]+e[i].w;
len[j]=len[k]+1;
if(len[j]>n) return true;
if(!vis[j]) vis[j]=1,q.push(j);
}
}
}
return false;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
init(n);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&l,&r,&s);
add(l,r,s);
if(s>=0) add(r,l,s);
}
if(spfa()) printf("YE5\n");
else printf("N0\n");
}
return 0;
}

吐槽一下,这个“YE5”是啥鬼?考验抠字眼耶......

最新文章

  1. ASP.NET 5 - $.ajax post JSON.stringify(para) is null
  2. AngularJS之指令中controller与link(十二)
  3. ArcGIS中的坐标系统定义与投影转换【转】
  4. Pyhton的发展历程
  5. 在虚拟机发布网站,设置服务器外网访问ip端口号
  6. GitHub详细教程(转载)
  7. Netsharp快速入门(之4) 基础档案(之C 实体建模 计量单位、商品、往来单位)
  8. c#与vb.net在App_Code里面编译要通过,需要以下web.config的配置
  9. ViewPager中使用自定义的ListView实例
  10. 企业版IDP的申请及“In House”发布
  11. SQL Server 索引整理与堆重组。
  12. IC卡
  13. eclipse中注释常用关键字
  14. Random随机数种子生成,减少生成重复随机数的可能
  15. (转)Java正则表达式的语法与示例
  16. [Swift]LeetCode455. 分发饼干 | Assign Cookies
  17. Dubbo开发,利用项目模拟提供者和消费者之间的调用--初学
  18. json字符串CSS格式化
  19. gin的url查询参数解析
  20. python:利用configparser模块读写配置文件

热门文章

  1. 安卓开发:Password verification failed
  2. iOS中的主要框架framework
  3. 人工智能、大数据、物联网、区块链,四大新科技PK,你更看好谁?
  4. 【原】Docker学习_Docker上传镜像至docker hub(4)
  5. 关于cctype头⽂件⾥的⼀些函数
  6. kafka 分区
  7. Lora、zigbee比较
  8. 两个list 集合比较属性不同的值
  9. 5G时代,行业市场用户的公网与专网如何选择
  10. c3p0 获取数据源