zoukankan      html  css  js  c++  java
  • Hie with the Pie POJ

    Hie with the Pie POJ - 3311

    这题是类TSP,与TSP区别是可以重复经过节点,只需floyed预处理出指定两点间(走过任意数量点)的最短路即可。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 int n,anss;
     6 int dis[12][12];
     7 int ans[12][3000];
     8 int main()
     9 {
    10     int i,j,k;
    11     scanf("%d",&n);
    12     while(n!=0)
    13     {
    14         for(i=0;i<=n;i++)
    15             for(j=0;j<=n;j++)
    16                 scanf("%d",&dis[i][j]);
    17         //memset(dis,0x3f,sizeof(dis));
    18         for(k=0;k<=n;k++)
    19             for(i=0;i<=n;i++)
    20                 for(j=0;j<=n;j++)
    21                     dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    22         memset(ans,0x3f,sizeof(ans));
    23         anss=0x3f3f3f3f;
    24         //ans[0][0]=0;
    25         for(i=1;i<=n;i++)
    26             ans[i][1<<(i-1)]=dis[0][i];
    27         for(i=1;i<(1<<n);i++)
    28             for(j=1;j<=n;j++)
    29                 for(k=1;k<=n;k++)
    30                     //if((i>>(k-1)&1)
    31                     if(i&(1<<(k-1)))
    32                         ans[j][i]=min(ans[j][i],ans[k][i^(1<<(j-1))]+dis[k][j]);
    33         for(i=1;i<=n;i++)
    34             anss=min(anss,ans[i][(1<<n)-1]+dis[i][0]);
    35         printf("%d
    ",anss);
    36         scanf("%d",&n);
    37     }
    38     return 0;
    39 }
  • 相关阅读:
    数据库连接池、事务
    JDBC、单元测试、DAO模式
    归并排序
    插入排序
    MySQL数据库
    JQuery
    JavaScript
    算法训练 连续正整数的和
    算法提高 寻找三位数
    算法训练 学做菜
  • 原文地址:https://www.cnblogs.com/hehe54321/p/poj-3311.html
Copyright © 2011-2022 走看看