hdu 1572(dfs+最短路)
2014-05-26 17:57
295 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1572
思路:dfs暴搜即可。
View Code
思路:dfs暴搜即可。
View Code
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define MAXN 33 6 #define inf 1<<30 7 int map[MAXN][MAXN]; 8 int n,MIN,k; 9 int num[MAXN]; 10 bool mark[MAXN]; 11 12 void dfs(int start,int count,int dist){ 13 if(count==k){ 14 MIN=min(dist,MIN); 15 return ; 16 } 17 for(int i=1;i<=k;i++){ 18 if(!mark[i]){ 19 mark[i]=true; 20 dfs(num[i],count+1,dist+map[start][num[i]]); 21 mark[i]=false; 22 } 23 } 24 } 25 26 27 int main(){ 28 int _case; 29 while(~scanf("%d",&n)&&n){ 30 for(int i=0;i<n;i++){ 31 for(int j=0;j<n;j++){ 32 scanf("%d",&map[i][j]); 33 } 34 } 35 k=0,MIN=inf; 36 scanf("%d",&_case); 37 memset(mark,false,sizeof(mark)); 38 while(_case--){ 39 int x; 40 scanf("%d",&x); 41 if(mark[x])continue; 42 mark[x]=true; 43 num[++k]=x; 44 } 45 memset(mark,false,sizeof(mark)); 46 dfs(0,0,0); 47 printf("%d\n",MIN); 48 } 49 return 0; 50 }
相关文章推荐
- HDU(1572),最短路,DFS
- hdu 1572(dfs+最短路)
- hdu 3468 Treasure Hunting【Bfs最短路+Dfs+二分匹配】
- HDU 1142(单源最短路,记忆DFS)
- HDU - 3313 Key Vertex(在最短路上的DFS)
- hdu 1572 下沙小面的(2)【dfs】
- hdu_4284 (Floyd求最短路+dfs遍历)
- hdu 4771 求一点遍历全部给定点的最短路(bfs+dfs)
- hdu 1142 A Walk Through the Forest【Dijkstra+dfs求最短路条数】
- hdu 3768 Shopping(DFS+最短路)
- hdu 5423 Rikka with Tree DFS 或最短路
- hdu 1142 A Walk Through the Forest (最短路+dfs )
- HDU1016.....dfs和&&的短路作用
- HDU 1572 下沙小面的(2) (DFS)
- hdu 1548 A strange lift(最短路或DFS)
- HDU 1572 下沙小面的(2) 【DFS】
- hdu 4771 求一点遍历所有给定点的最短路(bfs+dfs)
- HDU 1572 (DFS)
- HDU 1242 dFS 找目标最短路
- HDU-1572 下沙小面的(2) DFS