最短路 深搜
↑杭电oj ----2544
#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;
}
上一篇: 芸豆如何选购呢?芸豆如何保存呢?