题意:给你点和边,让你找最小环的权值,其权值是所有边权的和,没环输出-1。

解法:枚举每一条边,找到其端点,做最短路。、

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<queue>
using namespace std;
const int N=8e3+;
const int INF=0x3f3f3f3f;
int head[N],tot,dis[N],ans;
pair<int,int>aa,bb;
map<pair<int,int>,int>mp;
bool vis[N];
struct node
{
int u,to,next,w;
} e[N*N];
void add(int u,int v,int w)
{
e[tot].u=u;
e[tot].to=v;
e[tot].next=head[u];
e[tot].w=w;
head[u]=tot++;
}
struct ct
{
int w,id;
bool operator < (const ct &A)const
{
return w>A.w;
}
};
int dij(int s,int t,int ban)
{
memset(dis,INF,sizeof(dis));
memset(vis,,sizeof(vis));
priority_queue<ct>Q;
dis[s]=;
ct q,p;
q.w=,q.id=s;
Q.push(q);
while(!Q.empty())
{
q=Q.top();
Q.pop();
int u=q.id;
if(q.w>=ans) return -;
if(vis[u]) continue;
if(u==t) return q.w;
vis[u]=;
for(int i=head[u]; ~i; i=e[i].next)
{
if(i==ban||(i^)==ban) continue;
int v=e[i].to;
if(dis[v]>dis[u]+e[i].w)
{
dis[v]=dis[u]+e[i].w;
p.w=dis[v],p.id=v;
Q.push(p);
}
}
}
return -;
}
int main()
{
int T,tas=;
for(scanf("%d",&T); T--;)
{
int n,x,now=;
memset(head,-,sizeof(head));
tot=;
scanf("%d",&n);
mp.clear();
for(int i=; i<=n; ++i)
{
scanf("%d%d%d%d%d",&aa.first,&aa.second,&bb.first,&bb.second,&x);
if(!mp[aa]) mp[aa]=++now;
if(!mp[bb]) mp[bb]=++now;
add(mp[aa],mp[bb],x);
add(mp[bb],mp[aa],x);
}
ans=;
for(int i=; i<tot; i+=)
{
int w,u=e[i].u,v=e[i].to;
w=dij(u,v,i);
if(w!=-) ans=min(ans,w+e[i].w);
}
if(ans==) ans=;
printf("Case #%d: %d\n",tas++,ans);
}
}

hdu6005找带权最小环的更多相关文章

  1. 带权图的最短路径算法(Dijkstra)实现

    一,介绍 本文实现带权图的最短路径算法.给定图中一个顶点,求解该顶点到图中所有其他顶点的最短路径 以及 最短路径的长度.在决定写这篇文章之前,在网上找了很多关于Dijkstra算法实现,但大部分是不带 ...

  2. POJ 2912 Rochambeau(难,好题,枚举+带权并查集)

    下面的是从该网站上copy过来的,稍微改了一点,给出链接:http://hi.baidu.com/nondes/item/26dd0f1a02b1e0ef5f53b1c7 题意:有N个人玩剪刀石头布, ...

  3. 【带权并查集】【HDU3038】【How Many Answers Are Wrong】d s

    这个题看了2天!!!最后看到这篇题解才有所明悟 转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4298091.html   ---by 墨染之樱 ...

  4. DP的各种优化(动态规划,决策单调性,斜率优化,带权二分,单调栈,单调队列)

    前缀和优化 当DP过程中需要反复从一个求和式转移的话,可以先把它预处理一下.运算一般都要满足可减性. 比较naive就不展开了. 题目 [Todo]洛谷P2513 [HAOI2009]逆序对数列 [D ...

  5. 无向带权图的最小生成树算法——Prim及Kruskal算法思路

    边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权. 最小生成树(MST):权值最小的生成树. 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路.可以 ...

  6. poj1417(带权并查集+背包DP+路径回溯)

    题目链接:http://poj.org/problem;jsessionid=8C1721AF1C7E94E125535692CDB6216C?id=1417 题意:有p1个天使,p2个恶魔,天使只说 ...

  7. 某种带权有向无环图(graph)的所有路径的求法

    // 讨论QQ群:135202158 最近做某个东西,最后用图实现了,这里总结一下算法. 假设有以下带权有向无环图(连通或非连通,我这里用的是非连通的): 每个节点(node)可能与其他节点有向地相连 ...

  8. POJ - 2912 Rochambeau (带权并查集+枚举)

    题意:有N个人被分为了三组,其中有一个人是开了挂的.同组的人的关系是‘=’,不同组的人关系是‘<’或'>',但是开了挂的人可以给出自己和他人任意的关系.现在要根据M条关系找出这个开了挂的人 ...

  9. poj1182 食物链 带权并查集

    题目传送门 题目大意:大家都懂. 思路: 今天给实验室的学弟学妹们讲的带权并查集,本来不想细讲的,但是被学弟学妹们的态度感动了,所以写了一下这个博客,思想在今天白天已经讲过了,所以直接上代码. 首先, ...

随机推荐

  1. 【Linux常见命令】uname命令

    uname命令用于显示系统信息. uname可显示电脑以及操作系统的相关信息. 语法 uname [-amnrsv][--help][--version] 参数说明: -a或--all 显示全部的信息 ...

  2. java 设计模式-责任链

    责任链设计模式,其实就是处理同一个请求的对象连接成一条链,请求的路径经过这条链,符合要求的就处理这个请求,不符合就接着往下面抛出,直道有人处理这条请求. 业务:比如啊,公司个人请假,三天以下就是主管审 ...

  3. WordPress发布文章/页面时自动添加默认的自定义字段

    如果你每篇文章或页面都需要插入同一个自定义字段和值,可以考虑在WordPress发布文章/页面时,自动添加默认的自定义字段.将下面的代码添加到当前主题的 functions.php 即可: 1 2 3 ...

  4. HR问了一句DB是啥?SQL是啥?DB是Database数据库,SQL是数据库语言! 然后呢? 数据库从入门到精通--入门必看!

    写在前面 本文的写作知识体系来源于我的数据库老师SDAU张承明,部分知识来自于网络,我呢对知识进行了细化和添加了自己的一些看法,并且加入了一些实例帮助理解,本文不是面向SQL高手写的,可以看作是数据库 ...

  5. Codeforce 140C (贪心+优先队列)补题

    C. New Year Snowmen time limit per test2 seconds memory limit per test256 megabytes inputstandard in ...

  6. postman(介绍)

    Postman 界面介绍 一. 安装后首次打开 postman,会提示你是否需要登录,登录的话可以云端保存你的收藏及历史记录,不登陆不影响使用.   二. 进入后就是如下图所示的界面了.看到这么多按钮 ...

  7. muduo网络库源码学习————线程池实现

    muduo库里面的线程池是固定线程池,即创建的线程池里面的线程个数是一定的,不是动态的.线程池里面一般要包含线程队列还有任务队列,外部程序将任务存放到线程池的任务队列中,线程池中的线程队列执行任务,也 ...

  8. thinkphp5.x系列 RCE总结

    Thinkphp  MVC开发模式 执行流程: 首先发起请求->开始路由检测->获取pathinfo信息->路由匹配->开始路由解析->获得模块.控制器.操作方法调度信息 ...

  9. B. Sorted Adjacent Differences(思维构造)

    \(给出n个数字,要求构造一个由这n个数组成的序列,使得|a_1-a_2|<=|a_2-a_3|...<=|a_{n-1}-a_n|\) \(排序后,从数列中间取个数,然后从左右分别循环取 ...

  10. 11_JavaScript基础入门(1)

    JavaScript简介 1.JavaScript用途 前端三层: 结构层  HTML(从语义的角度描述页面的结构) 样式层  CSS(从审美的角度装饰页面) 行为层  JavaScript (从交互 ...