题目链接

题意及题解参见lrj训练指南

#include<bits/stdc++.h>
using namespace std; const double INF=1e18;
const int maxn=;
const int maxm=; int n,m;
struct Edge
{
int to,next;
double d;
Edge(){}
Edge(int to_,int next_,double d_)
{
to=to_,next=next_,d=d_;
}
};
Edge edge[maxm];
int head[maxn],tot;
bool inq[maxn];
double d[maxn];
int p[maxn];
int cnt[maxn]; void init()
{
memset(head,-,sizeof(head));
tot=;
}
void addedge(int u,int v,double d)
{
edge[tot]=Edge(v,head[u],d);
head[u]=tot++;
} // 顶点编号0~n-1共n个点
// 返回值表示 从s出发,能否遇到负环
bool spfa(int s,int n)
{
queue<int> Q;
for(int i=;i<n;i++) d[i]=INF;
memset(inq,false,sizeof(inq));
memset(cnt,,sizeof(cnt));
Q.push(s),inq[s]=true,d[s]=;
while(!Q.empty())
{
int u=Q.front();Q.pop();
inq[u]=false;
for(int i=head[u];~i;i=edge[i].next)
{
Edge& e=edge[i];
if(d[e.to]>d[u]+e.d)
{
d[e.to]=d[u]+e.d;
p[e.to]=i;
if(!inq[e.to])
{
Q.push(e.to),inq[e.to]=true;
if(++cnt[e.to]>=n) return true;//存在负环
}
}
}
}
return false; //无负环
} bool ok(double x)
{
for(int i=;i<tot;i++) edge[i].d-=x;
bool ret=spfa(,n+);
for(int i=;i<tot;i++) edge[i].d+=x;
return ret;
} int main()
{
int T,kase=;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
init();
double ud=;
while(m--)
{
int u,v;
double d;
scanf("%d%d%lf",&u,&v,&d);
addedge(u,v,d);
ud=max(ud,d);
}
for(int i=;i<=n;i++) addedge(,i,ud+);
printf("Case #%d: ",++kase);
if(!ok(ud+))
{
puts("No cycle found.");
continue;
}
double l=,r=ud;
while(r-l>1e-)
{
double mid=(l+r)/;
if(ok(mid)) r=mid;
else l=mid;
}
printf("%.2lf\n",l);
}
}

UVA 11090 : Going in Cycle!! 【spfa】的更多相关文章

  1. UVa 11090 Going in Cycle!!【Bellman_Ford】

    题意:给出n个点m条边的加权有向图,求平均值最小的回路 自己想的是用DFS找环(真是too young),在比较找到各个环的平均权值,可是代码实现不了,觉得又不太对 后来看书= =好巧妙的办法, 使用 ...

  2. UVA11090 Going in Cycle!! 【SPFA】

    题意:求一个无向图的边权平均值最小的环 思路:假设环中Σwi/t<ans 那变形一下就是Σwi<ans*t → Σ(wi-ans)< 0 这样就可以二分答案做了 #include & ...

  3. UVA - 11090 - Going in Cycle!!(二分+差分约束系统)

    Problem  UVA - 11090 - Going in Cycle!! Time Limit: 3000 mSec Problem Description You are given a we ...

  4. UVA 11090 - Going in Cycle!!(Bellman-Ford)

    UVA 11090 - Going in Cycle!! option=com_onlinejudge&Itemid=8&page=show_problem&category= ...

  5. 141. Linked List Cycle【easy】

    141. Linked List Cycle[easy] Given a linked list, determine if it has a cycle in it. Follow up:Can y ...

  6. 【SPFA】 最短路计数

    最短路计数 [问题描述]   给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. [输入格式]   输入第一行包含2个正整数N,M,为图的顶点数与边数. ...

  7. sendrose【SPFA】

    之前看到一题需要并查集+SPFA,然后就特别囧的发现自己SPFA这个历史遗留问题已经不知道怎么打了╮(╯▽╰)╭ 就果断挑了一题特别裸的SPFA赶紧搞搞掉,顺便自己乱YY下学SPFA的笔记,免得自己下 ...

  8. uva 10154 - Weights and Measures【dp】qi

    题意:uva 10154 - Weights and Measures 题意:有一些乌龟有一定的体重和力量,求摞起来的最大高度.力量必须承受其上面包含自己的所有的重量. 分析:先按其能举起来的力量从小 ...

  9. 【SPFA】POJ1511-Invitation Cards

    [题目大意] 给出一张有向图,以1位源点,求“从源点出发到各点的距离”和“与各点返回源点的距离和”相加得到的和. [思路] 毫无疑问是最短路径,但是这数据量就算是SPFA也绝壁会超时啊,抱着必死的心态 ...

随机推荐

  1. LeetCode.938-范围内求二叉搜索树节点值之和(Range Sum of BST)

    这是悦乐书的第359次更新,第386篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第221题(顺位题号是938).给定二叉搜索树的根节点,返回节点值在[L,R]之间的所有 ...

  2. 【VS开发】VC实现程序重启的做法

    转载地址:http://blog.csdn.net/clever101/article/details/9327597 很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启.所谓重启就是 ...

  3. SpringBoot启动时 提示没有主清单属性 MANIFEST

    SpringBoot启动时 提示没有主清单属性 MANIFEST <?xml version="1.0" encoding="UTF-8"?> &l ...

  4. nodejs以对象做对象的key导致value一直被覆盖

      问题描述 在开发中,实现技能状态的事件监听功能时,将状态对象作为key,存入事件管理器的监听列表,如下图: 实现后,运行程序,并没有报错,但是当某个事件发生时,只有一个状态被触发监听,而大多数状态 ...

  5. 【基本优化实践】【1.4】tempdb优化

    [1]tempdb介绍 tempdb全局存储内部对象,用户对象,临时表,临时对象,以及SQL Server操作创建的存储过程.每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈. 各 ...

  6. NPM和webpack的关系(转载)

    NPM和webpack的关系(转载):https://blog.csdn.net/cwh0908/article/details/90769823 NPM和webpack的关系(转载) 入门前端的坑也 ...

  7. 【6.12校内test】T2 子集

    这道题大概是这三道题里最简单的啦 但这阻止不了我废的脚步 [问题描述] 对于 n=4 时,对应的集合 s={4,3,2,1},他的非空子集有 15 个依次如下: {1} {2} {1,2} {3} { ...

  8. pyhton自动化项目编码以及命名规范

    对于任何一个编程项目来说,都需要一个编码的规范以及标准,这里整理了一些Google python的命名规范以及python语言PEP8的编码规范. 一.命名规范 命名示例: module_name, ...

  9. python-day8(正式学习)

    目录 列表类型内置方法 常用操作+内置方法 优先掌握(***) 需要掌握(**) 存一个值or多个值 有序or无序 可变or不可变 元组类型内置方法 定义 常用操作+内置方法 优先掌握 一个值or多个 ...

  10. Javaweb实训-宠物医院-社区宠物医院登陆页面

    <%--        Created by IntelliJ IDEA.        User: Administrator        Date: 2018/3/13        Ti ...