博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-1572 下沙小面的(2) DFS
阅读量:6945 次
发布时间:2019-06-27

本文共 925 字,大约阅读时间需要 3 分钟。

  首先解释下这题的名字,下沙是个地名,面的是一种公共交通工具,小是个形容词......

  对于这题那便是DFS纯暴力了,每次先到达不同的第一站,再扩展下去到第二站... 暴力枚举每一种可能,最后保留最小值。

  代码如下:

#include 
#include
#include
using namespace std;int map[35][35], N, K, obj[35], RK;void DFS( int pos, int step, int dis, int &ans ){ if( step== RK ) { ans= ans< dis? ans: dis; } for( int i= 1; i< N; ++i ) { if( obj[i] ) // 如果有人要求到该栈而又没有开去过 { obj[i]= 0; DFS( i, step+ 1, dis+ map[pos][i], ans ); obj[i]= 1; } }}int main(){ while( scanf( "%d", &N ), N ) { int ans= 0x7fffffff; RK= 0; memset( map, 0, sizeof( map ) ); memset( obj, 0, sizeof( obj ) ); for( int i= 0; i< N; ++i ) { for( int j= 0; j< N; ++j ) { scanf( "%d", &map[i][j] ); } } scanf( "%d", &K ); for( int i= 1; i<= K; ++i ) { int c; scanf( "%d", &c ); if( obj[c]== 0 ) { obj[c]= 1; RK++;// 用来记录总共有多少不重复的站 } } DFS( 0, 0, 0, ans ); printf( "%d\n", ans ); } return 0;}

转载地址:http://hihnl.baihongyu.com/

你可能感兴趣的文章
Leetcode 515. Find Largest Value in Each Tree Row
查看>>
Linux 僵尸进程的筛选和查杀
查看>>
mysql linux app
查看>>
DotNetCore学习-3.管道中间件
查看>>
Python基础11_函数名运用,闭包,迭代器
查看>>
java集合框架
查看>>
python之configparse模块
查看>>
CentOS6.2编译安装MySQL5.5.25
查看>>
Nyoj 星际之门(一)(Cayley定理)
查看>>
词法分析程序
查看>>
前端基础之css
查看>>
网址收藏
查看>>
人的成长,注定是一场孤独的旅途 ...(360doc)
查看>>
死锁排查的小窍门 --使用jdk自带管理工具jstack
查看>>
安卓开发者必备的42个链接
查看>>
DeadLine
查看>>
2018-2019 Exp2 后门原理与实践
查看>>
bzoj5137 [Usaco2017 Dec]Standing Out from the Herd
查看>>
Mysql压缩包版zip的安装方法
查看>>
UWP 动画
查看>>