首页 > 其他分享 >[图论]floyd统计最小环个数

[图论]floyd统计最小环个数

时间:2022-11-16 20:12:49浏览次数:65  
标签:tmp 图论 rep 个数 最小 floyd ll

使用floyd可以求解最小环问题.

单纯需要求出最小环长度,方法显而易见

最小环 - OI Wiki (oi-wiki.org)

然而,如果需要统计最小环的个数,就比较麻烦.

记\(cnt_{i,j}\)表示从\(i\)到\(j\)的最短路条数.

进行转移.

时间复杂度\(O(n^3)\)

mi=0x3f3f3f3f3f3f3f3f; 
rep(k,1,n)
    {
        rep(i,1,k-1)
            rep(j,1,i-1)
            {
                ll tmp=(ll)dis[i][j]+vl[i][k]+vl[k][j];
                if ((tmp<mi) && (tmp<inf))
                {
                    mi=tmp;
                    ans=cnt[i][j];
                }
                else if (tmp==mi)
                    ans+=cnt[i][j];
            }
        rep(i,1,n)
            rep(j,1,n)
                if (dis[i][k]+dis[k][j]<dis[i][j])
                {
                    dis[i][j]=dis[i][k]+dis[k][j];
                    cnt[i][j]=cnt[i][k]*cnt[k][j];
                }
                else if (dis[i][j]==dis[i][k]+dis[k][j])
                    cnt[i][j]+=cnt[i][k]*cnt[k][j];
    }

标签:tmp,图论,rep,个数,最小,floyd,ll
From: https://www.cnblogs.com/xu2006/p/16897341.html

相关文章

  • C语言借助两个数的大小交换,引入指针。
    前期没有指针的时候,我们的交换只可以通过在被调函数中输出语句,来输出交换后的样子!被调函数的形参是局部变量,生命期仅仅在被调函数中有。因此,主函数中a,b仍然是......
  • Excel函数实现一个字段查多个数据(没实现)
    Excel在筛选区域内查找我想实现的功能是,用VLOOKUP时,对第二个参数,即查询范围进行限制,还要实现模糊匹配1、查询范围限制(1)组合条件查找用&可以搞定(2)INDEX+MATCH依然是......
  • 模板:4个数码管动态显示精简方法
    示例:分秒表原始方法:查看代码unsignedcharSMG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voiddisp(unsignedintj,k){ P2=0XEF;//P24数码......
  • 错题记录:单片机4个数码管分秒表 关于定义数组的细节问题
    废话不多说先上代码:查看代码 //定时器0分,秒的计时计数voidtimer0()interrupt1{ staticunsignedintspeed,count=0; TH0=0XEE; TL0=0X00; count++; if(s......
  • 盘点一个pandas两个数据横向拼接的问题
    大家好,我是皮皮。一、前言前几天在Python白银交流群【谢峰】问了一个Pandas拼接的问题,提问截图如下:下图是他的运行截图:看上去去数据错位了。二、实现过程一开始以......
  • PTA 21级数据结构与算法实验4—图论
    目录目录7-1邻接矩阵表示法创建无向图7-2邻接表创建无向图7-3图深度优先遍历7-4单源最短路径7-5列出连通集7-6哈利·波特的考试7-12关键活动7-13任务调度的合理性7......
  • 快速对一个数进行质因数分解(预处理可降低为log复杂度)
    对一个数进行质因子分解的朴素做法是O(sqrt(n))的试除法如果可以预处理出mindiv[i]数组,即每个数的最小质因子,则进行因式分解时,可以对数n,不断执行n/=mindiv[n],即可分解。......
  • 几个图论 trick
    歪歪球/se总结几个遇到过的图论trick.模拟图论算法面对图论中的问题(又或是其他方向的问题),在我们手中有的工具是Kruskal,Borůvka,Tarjan,Kosarajo甚至于dfs,bfs,......
  • Java 几分钟处理完 30 亿个数据?
    1.场景说明现有一个10G文件的数据,里面包含了18-70之间的整数,分别表示18-70岁的人群数量统计。假设年龄范围分布均匀,分别表示系统中所有用户的年龄数,找出重复次数最多......
  • 利用函数交换两个数的值
    #include<stdio.h>voidswap(int*pa,int*pb){ inttmp=0; tmp=*pa; *pa=*pb; *pb=tmp;}intmain(){ inta=10; intb=20;printf("a=%d,b=%d\n",a,b);swap(......