最短路 深搜

2019-04-12 09:25:00来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折


#include <cstdio>
#include <cstring>using namespace std;
const int INF=0x3f3f3f3f;
int n,m,a,b,c,mp[105][105],ans;
bool use[105];
void dfs(int k,int l){
    for(int i=2;i<=n;i++)
    {
         if(l>ans) return;
         if(k==n)
    {
         ans=l;
         return;
    }
      if(use[i]==false)
      {
         use[i]=true;
         dfs(i,l+mp[k][i]);
         use[i]=false;
      }
    }
    }
    int main()
    {
       while(scanf("%d%d",&n,&m)!=EOF&&(n||m))
       {
           ans=INF;
           memset(mp,INF,sizeof(mp));
           for(int i=1;i<=m;i++)
           {
               scanf("%d%d%d",&a,&b,&c);
               if(mp[a][b]>c)
               mp[a][b]=mp[b][a]=c;
           }
           use[1]=true;
           dfs(1,0);
           printf("%d\n",ans);
     }
     return 0;
}


原文链接:https://www.cnblogs.com/zptcszj/p/10695833.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C++基础——类封装简单示例

下一篇:学习C++之内存管理