最小环问题

/*
1.删边法:把边删去后,查找最小值
2.floyd:
首先是肯定枚举到了所有的组合
无向图最小环,先确定两个点之间的最短路,并且一定没有经过第三个点,然后在以经过第三个点
*/
#include <bits/stdc++.h>
using namespace std;
const int N=110,inf=1e8;
int n,m;
int g[N][N],dis[N][N];
int ans=inf;
void floyd() {
for(int k=1;k<=n;k++) {
for(int i=1;i<k;i++)for(int j=i+1;j<k;j++)
ans=min(ans,dis[i][j]+g[j][k]+g[k][i]);
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)
dis[i][j]=dis[j][i]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
}
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)g[i][j]=inf;
for(int i=1;i<=n;i++)g[i][i]=0;
while(m--) {
int x,y,wi;
cin>>x>>y>>wi;
g[x][y]=g[y][x]=min(g[x][y],wi);
}
memcpy(dis,g,sizeof(g));
floyd();
if(ans==inf)puts("No solution.");
else cout<<ans<<endl;
return 0;
}
posted @   basicecho  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示