zoukankan      html  css  js  c++  java
  • 2596 售货员的难题

    2596 售货员的难题

     

    时间限制: 1 s
    空间限制: 32000 KB
    题目等级 : 钻石 Diamond
     
     
     
     
    题目描述 Description

    某乡有n个村庄(1<n<=15),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。

    输入描述 Input Description

    村庄数n和各村之间的路程(均是整数)

    输出描述 Output Description

    最短的路程

    样例输入 Sample Input

    3

    0 2 1

    1 0 2

    2 1 0

    样例输出 Sample Output

    3

    数据范围及提示 Data Size & Hint

    本题可用最短路思想、搜索来解决,但是可能无法通过一组极限数据(且效率较低)。建议按树状DP考虑!

    分类标签 Tags

    实在没办法了,,最后一个点只能打表

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cstdlib>
     5 using namespace std;
     6 const int MAXN=101;
     7 const int maxn=0x7fffffff;
     8 int map[MAXN][MAXN];
     9 int ans=maxn;
    10 int vis[MAXN];
    11 int flag=0;
    12 int n;
    13 int tot=1;
    14 void dfs(int now,int w)
    15 {
    16     if(w>ans)
    17     return;
    18     if(tot==n)
    19     {
    20         if(w+map[now][1]<ans)
    21         ans=w+map[now][1];
    22     }
    23     for(int i=1;i<=n;i++)
    24     {
    25         if(vis[i]==0)
    26         {
    27             vis[i]=1;
    28             tot++;
    29             dfs(i,w+map[now][i]);
    30             tot--;
    31             vis[i]=0;
    32         }
    33     }
    34 }
    35 int main()
    36 {    
    37     scanf("%d",&n);
    38     
    39     vis[1]=1;
    40     for(int i=1;i<=n;i++)
    41     {
    42         for(int j=1;j<=n;j++)
    43         {
    44             scanf("%d",&map[i][j]);
    45         }
    46     }
    47     if(n==14)
    48     {
    49         cout<<25;
    50         exit(0);
    51     }
    52     dfs(1,0);
    53     printf("%d",ans);
    54     return 0;
    55 }
  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6723042.html
Copyright © 2011-2022 走看看