uva 12544 无向图最小环
思路:这题的N有500,直接floyd肯定超时。
我的做法是每次枚举一个点,求出包含这个点的最小环。
对所有最小环取最小值。求包含某个点的最小环我用的是启发式搜索,先以该点求一次spfa,然后dfs解决问题。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Maxn 600
#define inf 1000000
using namespace std;
int head[Maxn],vi[Maxn],dis[Maxn],e,que[Maxn*],ans,dist[Maxn];
struct Edge{
int u,v,next;
}edge[Maxn*];
void init()
{
memset(head,-,sizeof(head));
memset(vi,,sizeof(vi));
e=;
}
void add(int u,int v)
{
edge[e].u=u,edge[e].v=v,edge[e].next=head[u],head[u]=e++;
edge[e].u=v,edge[e].v=u,edge[e].next=head[v],head[v]=e++;
} void spfa(int u)
{
int i,j,v,now,rear,he;
for(i=;i<Maxn;i++){
dist[i]=inf;
vi[i]=;
}
dist[u]=;
he=rear=;
que[he++]=u;
while(he!=rear){
now=que[rear++];
vi[now]=;
for(i=head[now];i!=-;i=edge[i].next){
v=edge[i].v;
if(v==now) continue;
if(dist[now]+<dist[v]){
dist[v]=dist[now]+;
if(!vi[v]){
que[he++]=v;
vi[v]=;
}
}
}
}
return ;
}
void dfs(int u,int pre)
{
int i,v;
for(i=head[u];i!=-;i=edge[i].next){
v=edge[i].v;
if(v==pre) continue;
if(dis[v]==){
ans=min(ans,dis[u]+);
continue;
}
if(dis[u]+dist[u]>=ans)
return ;
if(dis[u]+<dis[v]){
dis[v]=dis[u]+;
dfs(v,u);
}
}
}
int main()
{
int n,m,i,j,u,v,t,Ca=;
scanf("%d",&t);
while(t--){
init();
scanf("%d%d",&n,&m);
for(i=;i<=m;i++){
scanf("%d%d",&u,&v);
u++,v++;
add(u,v);
}
ans=inf;
for(i=;i<=n;i++){
for(j=;j<=n;j++)
dis[j]=inf;
dis[i]=;
spfa(i);
dfs(i,);
}
printf("Case %d: ",++Ca);
if(ans>=inf)
printf("impossible\n");
else
printf("%d\n",ans);
}
return ;
}
uva 12544 无向图最小环的更多相关文章
- POJ 1734 无向图最小环/有向图最小环
给定一张图,求图中一个至少包含三个点的环,环上的点不重复,并且环上的边的长度之和最小. 点数不超过100个 输出方案 无向图: /*Huyyt*/ #include<bits/stdc++.h& ...
- UVA 12544 - Beehives O(nm) 无向图最小环
Bees are one of the most industrious insects. Since they collect nectarand pollen from flowers, they ...
- FZU 2090 旅行社的烦恼 floyd 求无向图最小环
题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...
- 【POJ1734】Sightseeing Trip 无向图最小环
题目大意:给定一个 N 个顶点的无向图,边有边权,如果存在,求出该无向图的最小环,即:边权和最小的环,并输出路径. 题解:由于无向图,且节点数较少,考虑 Floyd 算法,在最外层刚开始遍历到第 K ...
- 图论:Floyd-多源最短路、无向图最小环
在最短路问题中,如果我们面对的是稠密图(十分稠密的那种,比如说全连接图),计算多源最短路的时候,Floyd算法才能充分发挥它的优势,彻彻底底打败SPFA和Dijkstra 在别的最短路问题中都不推荐使 ...
- 「LOJ#10072」「一本通 3.2 例 1」Sightseeing Trip(无向图最小环问题)(Floyd
题目描述 原题来自:CEOI 1999 给定一张无向图,求图中一个至少包含 333 个点的环,环上的节点不重复,并且环上的边的长度之和最小.该问题称为无向图的最小环问题.在本题中,你需要输出最小环的方 ...
- POJ 1734 Sightseeing trip(无向图最小环+输出路径)
题目链接 #include <cstdio> #include <string> #include <cstring> #include <queue> ...
- USACO4.13Fence Loops(无向图最小环)
最近脑子有点乱 老是不想清楚就啪啪的敲 敲完之后一看 咦..样例都过不去 仔细一想 这样不对啊 刚开始就写了一SPFA 最后发现边跟点的关系没处理好 删了..写dfs..还是没转化好 开始搜解题方法 ...
- find the mincost route【无向图最小环】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1599 Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在860 ...
随机推荐
- GetWindowThreadProcessId用法(转)
函数功能:该函数返回创建指定窗口线程的标识和创建窗口的进程的标识符,后一项是可选的. 函数原型:DWORD GetWindowThreadProcessld(HWND hwnd,LPDWORD lpd ...
- Slave延迟很大的优化方法总结(MySQL优化)
[http://www.cstor.cn/textdetail_9146.html] 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在m ...
- RESTful Webservice (一) 概念
Representational State Transfer(表述性状态转移) RSET是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩 ...
- Android LIstView初次创建getview方法执行多次问题
写listview优化的时候,发现Listview初次创建的时候会多次执行getView方法. <?xml version="1.0" encoding="utf- ...
- 凯尔卡C68全球版汽车电脑诊断仪
产品简介: C68汽车故障诊断仪是凯尔卡公司新推出的一款集经济.简约.稳定.耐用于一体的汽车诊断设备, 该产品采用了最新的智能移植技术,集成度高:C68车型覆盖广,测试功能强大.数据准确等优点, 是目 ...
- 使用UILocalizedIndexedCollation实现区域索引排序 及 不显示没有数据的区域
UILocalizedIndexedCollation可以实现区域排序,类似通讯录的样式. //首先进行初始化 locationCollation = [UILocalizedIndexedColla ...
- ISA中的WEB链
在ISA Server 2004中提供了Web链功能,它就相当于将ISA Server配置为二级代理,可以将你的请求转发到上游的代理服务器或其他站点.使用Web链,你就可以实现条件路由,对不同的目的地 ...
- 使用TypeDescriptor给类动态添加Attribute
给类动态添加Attribute一直是我想要解决的问题,从msdn里找了很久,到Stack Overflow看了不少文章,算是最终有了答案. 先是有这样的一段解释 Attributes are stat ...
- 【JavaScript】关于prototype
所有的对象都有constructor属性 但是只有function类型才有prototype属性----->值是一个对象,即prototype对象,所有的实例对象共享同一个prototype对象 ...
- 推荐几个可以与PhoneGap很好搭配的UI框架
- xui.js:可以被视作是jquery在phonegap上的替代品,挺好用的- jq.mobi:同上,不过体积比xui.js要大,一般还是用xui.js- jq.ui:jq.mobi配套的UI框架 ...