hdu1599 无向图最小环

无向图最小环 hdu1599 注意:将inf设置成0x3f3f3f3f后,三个inf相加就爆int了。开始不知道错哪了。。。 有向图可以先拓扑排序 保证形成的环上面至少有三个顶点。 一:dijkstra(有向图无向图都可以) 枚举任意的边,e(i,j),并删去e(i,j)。枚举点i到j的最短路(m次dijkstra),这个时候i到j之间的最短路一定是通过其他边更新出来了。就是说在目前形成的环上面,除了i,j至少还有一个... 阅读详情

find the mincost route

Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1164    Accepted Submission(s): 463


Problem Description
杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。
 

Input
第一行是2个整数N和M(N <= 100, M <= 1000),代表景区的个数和道路的条数。
接下来的M行里,每行包括3个整数a,b,c.代表a和b之间有一条通路,并且需要花费c元(c <= 100)。
 

Output
对于每个测试实例,如果能找到这样一条路线的话,输出花费的最小值。如果找不到的话,输出"It's impossible.".
 

Sample Input
  
3 3 1 2 1 2 3 1 1 3 1 3 3 1 2 1 1 2 3 2 3 1
 

Sample Output
  
3 It's impossible.
 

Author
8600
 

Source
 

Recommend
8600
 
最小环见http://blog.sina.com.cn/s/blog_476a25110100mag6.html
#include <iostream>
#include <cstring>
#include <cstdio>
#define inf 99999999
using namespace std;
int dist[105][105];
int map[105][105];
int micircle;
int n;
void floyd()
{
    int i,j,k;
    for(k=1;k<=n;k++)
    {
        for(i=1;i<k;i++)
        {
            for(j=i+1;j<k;j++)
                micircle=min(micircle,map[i][k]+map[k][j]+dist[i][j]);
        }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
        }
    }
}
int main()
{
    int m;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        int i;
        int j;
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=n;j++)
            {
                if(i==j)
                    map[i][j]=dist[i][j]=0;
                else
                    map[i][j]=dist[i][j]=inf;
            }
        }
        for(i=0;i<m;i++)
        {
            int u,v,w;
            scanf("%d%d%d",&u,&v,&w);
            if(w<map[u][v])
                map[u][v]=map[v][u]=dist[u][v]=dist[v][u]=w;
        }

        micircle=inf;
        floyd();
        if(micircle>=inf)
            printf("It's impossible.\n");
        else
            printf("%d\n",micircle);
    }
    return 0;
}


Halcon实战:如何快速找到图像中的多个圆并计算圆心距离(附完整代码) 本文详细介绍了Halcon在工业视觉检测中快速定位图像中的多个圆并计算圆心间距离的实战方法。通过两种核心算法(阈值分割和动态阈值)的对比分析,结合完整代码示例和参数调优技巧,帮助开发者高效解决多圆检测问题,提升工业检测精度与效率。 阅读详情

相关推荐

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 234

HDU 1599 find the mincost route【floyd 最小环

Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第一行是2个整数...

weixin_33800593的博客 256

IEC 62040 Series Uninterruptible power systems (UPS)- 包含全部5份最新英文标准文件_.7z

IEC 62040 Series Uninterruptible power systems (UPS)- 包含全部5份最新英文标准文件_.7z

HDU 1599 find the mincost route(最小环)

HDU 1599 find the mincost route(最小环) 题意:给定带权无向图,可能有重边,求至少结点数为3的最小环,这里环的权值定义为环上带权边的权值之和。 思路:floydfloydfloyd解决,考虑遍历到第kkk个中转站时,我们已经求出i,j<ki,j<ki,j<k时的最短路d[i][j]d[i][j]d[i][j],所以若i,j,ki,j,ki,j,k在一个环上的话,则ans=min(ans,d[i][j]+g[i][k]+g[k][j])ans=min(ans

Harris-H的博客 736

HDU1599最小环

最小环问题:指的是在一张图中找出一个环,使得这个环的各边的权值之和最小。 方法一:断边法: 1.断开环的一条边(Wij=inf) 2.用Dijstra算法求出i->j的最短路径 3.恢复这条边的长度(Wij) 4.计算环的长度,dist=Dist(i,j)+Wij 5.循环全部边,更新最小值dist即可。 方法二:Floyd算法: 1.一个环中的编号最大的点为K,i和j是与K相邻两点,且满足i<j<k,则该环的长度,dist=Dij+Wik+Wkj,Dij是不经过点K的最短距离 2.使用F

Keep_Trying_Go的博客 917

HDU - 1599】find the mincost route (Floyd最小环,最短路问题)

题干: 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K&gt;2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第一行是2个整数N和M(N &lt;= 100...

xuanweiace的博客 639

最小权值环-(floyd求最小环)

最小环 思考: 上次那个傻逼机器人的D就是求个环,平时没用过,没想起来。 代码: int T,n,m; int va[N]; int dp[M][M]; int dist[M][M]; signed main() { IOS; cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) if(i!=j) dist[i][j] = dp[i][j] = 1e12; } for(int i=1;i&l

m0_52398496的博客 225

hdu1599无向图最小环

杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K&gt;2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第一行是2个整数N和M(N &lt;= 100, M &l...

Patrickpwq 699

HDU1599 floyd最小环无向图)问题

题目:杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,…VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第一行是2个整数N和M(N <= 100, M <...

Andy01_ 952

HDU1599(无向图最小环)

Find the mincost route Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,…VK,V1,那么必须满足K&gt;2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越...

浮生之居士 717

hdu 1599 无向图最小环

裸的无向图最小环,我们可以在Floyd的过程中求得。 具体思想是:枚举环中的编号最大的顶点k,然后枚举和k相关联的两个顶点i和j(i和j都小于k),则该环的长度为:dist[i][j] + g[j][k] + g[k][i],循环到k的时候,dist[i][j]表示的是i到j的经过的顶点编号小于k的最短路,所以正确性很显然,由于i、j、k都不相同,所以环上至少是3个点。 1 #inclu...

weixin_30780649的博客 110

hdu1599无向图最小环

【题意】       N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。【前话】      昨晚看到队友发了篇flody算法求最小环的博文,表示flody是很久以前接触的,差不多忘了,似乎很暴力,结果我自己想了更暴力的用了单源最短路径居然给过了ran

坐井观天 1272

HDU1599 find the mincost route 无向图最小环

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1599   题目大意:就是说8600要去旅行,给你若干个景区,8600想要找到一条路线,比如从A出发最终回到A,并且除了出发点外其余的景区不会不会重复走一遍,如V1>V2>V3>....>Vn,并且景区数不少于3.现在要求你找出一条花费最少的路径。其中数据N,M为景区数,道路数。a,b,c表示从a到

No_Retreats的专栏 2047

HDU 1599 find the mincost route 无向图最小环

题目来源:HDU 1599 find the mincost route 题意:求最小的3点组成的环 思路:floyd 参考http://blog.sina.com.cn/s/blog_476a25110100mag6.html http://www.cppblog.com/mythit/archive/2009/04/21/80579.aspx #include #include #i

嗯。 1086

HDU-1599 find the mincost route (无向图最小环[Floyd])

大致思路:无向图的环最少有三个点,所以需要增加一部分求最小环;枚举中间点k,在用其更新最短路前,先找最小环,令1<=i<j<k,即k点必定不在i,j的最短路上,则这个环中至少有三个点,这个环的权值为:dis[i][j]+g[i][k]+g[k][j]

idealism_xxm的专栏 568

hdu 1599 find the mincost route(找无向图最小环

注意!这里写成   #define data 0x3f3f3f3f  memset(map,data,sizeof(map))是wrong 按理来说应该不错,郁闷,以后还是循环赋值然后宏定义#define data 100000000 Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过

1944

hdu 1599 find the mincost route(找无向图最小环)(floyd求最小环

ps(我到今天才知道Floyd的核心思想是动态规划==) hdu 1599 find the mincost route(找无向图最小环)   注意!这里写成   #define data 0x3f3f3f3f  memset(map,data,sizeof(map))是wrong 按理来说应该不错,郁闷,以后还是循环赋值然后宏定义#define data 100000000

silence401的博客 1188

HDU 1599 find the mincost route(无向图最小环)

http://acm.split.hdu.edu.cn/showproblem.php?pid=1599 分析: 求无向图最小环     利用folyd的性质在 i---j 间插点    每次得到 i-j  之间目前最短路     在此基础上找到另一条目前 i-j 的最短路   map[i][k]+ma

MM__1997的博客 821

hdu1599 find the mincost route (无向图最小环问题)

Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,…VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第一行是2个整数N和M(N ...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 329

HDU 1599 find the mincost route(floyd求最小环 无向图

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1599 find the mincost route Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7047    Accep...

Y先森0.0 320

HDU 1599 find the mincost route(无向图最小环

题目链接:Click here~~ 题意: 给一个无向图,求出图中的最小环。 解题思路: 摘别人的博客。 floyd求最小环:         抛开Dijkstra算法,进而我们想到用Floyd算法。我们知道,Floyd算法在进行时会不断更新矩阵dist(k)。设dist[k,i,j]表示从结点i到结点j且满足所有中间结点,它们均属于集合{1,2,⋯

nyist_xiaod 1107
上一篇: hdu1595 dijkstra
下一篇: hdu1839 二分+最短路
JustSteps
博客等级 码龄14年 48粉丝 210原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值