4124:海贼王之伟大航路

  • 查看
  • 提交
  • 统计
  • 提示
  • 提问
总时间限制: 
1000ms 
内存限制: 
65536kB
描述

“我是要成为海贼王的男人!”,路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程。

路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着“唯一的大秘宝”——ONE PIECE)。而航程中间,则是各式各样的岛屿。

因为伟大航路上的气候十分异常,所以来往任意两个岛屿之间的时间差别很大,从A岛到B岛可能需要1天,而从B岛到A岛则可能需要1年。当然,任意两个岛之间的航行时间虽然差别很大,但都是已知的。

现在假设路飞一行从罗格镇(起点)出发,遍历伟大航路中间所有的岛屿(但是已经经过的岛屿不能再次经过),最后到达拉夫德鲁(终点)。假设他们在岛上不作任何的停留,请问,他们最少需要花费多少时间才能到达终点?

输入
输入数据包含多行。
第一行包含一个整数N(2 < N ≤ 16),代表伟大航路上一共有N个岛屿(包含起点的罗格镇和终点的拉夫德鲁)。其中,起点的编号为1,终点的编号为N。
之后的N行每一行包含N个整数,其中,第i(1 ≤ i ≤ N)行的第j(1 ≤ j ≤ N)个整数代表从第i个岛屿出发到第j个岛屿需要的时间t(0 < t < 10000)。第i行第i个整数为0。
输出
输出为一个整数,代表路飞一行从起点遍历所有中间岛屿(不重复)之后到达终点所需要的最少的时间。
样例输入
样例输入1:
4
0 10 20 999
5 0 90 30
99 50 0 10
999 1 2 0样例输入2:
5
0 18 13 98 8
89 0 45 78 43
22 38 0 96 12
68 19 29 0 52
95 83 21 24 0
样例输出
样例输出1:
100样例输出2:
137
提示
提示:
对于样例输入1:路飞选择从起点岛屿1出发,依次经过岛屿3,岛屿2,最后到达终点岛屿4。花费时间为20+50+30=100。
对于样例输入2:可能的路径及总时间为:
1,2,3,4,5: 18+45+96+52=211
1,2,4,3,5: 18+78+29+12=137
1,3,2,4,5: 13+38+78+52=181
1,3,4,2,5: 13+96+19+43=171
1,4,2,3,5: 98+19+45+12=174
1,4,3,2,5: 98+29+38+43=208
所以最短的时间花费为137
单纯的枚举在N=16时需要14!次运算,一定会超时。
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>
using namespace std;
int a[25][25];
int n;
int ans=0x7fffffff/2;
bool tag[16][1<<16];
int bj[16][1<<16];
void dfs(int cur,int state,int s)
{tag[cur][state]=true;bj[cur][state]=s;if(cur==(n-1)&&state!=((1<<n)-1)) return;if(s>=ans) return;if(cur==(n-1)&&state==((1<<n)-1)){ans=min(ans,s);return;}for(int i=0;i<n;++i){if(!(state&(1<<i))&&(!tag[i][(state|(1<<i))]||bj[i][(state|(1<<i))]>s+a[cur][i])){dfs(i,state|(1<<i),s+a[cur][i]);}}
}
int main()
{memset(tag,0,sizeof(tag));cin>>n;for(int i=0;i<n;++i){for(int j=0;j<n;++j){cin>>a[i][j];}}dfs(0,1,0);cout<<ans<<endl;return 0;
}

poj 4124:海贼王之伟大航路相关推荐

  1. bailianoj 4124海贼王之伟大航路

    bailianoj 4124海贼王之伟大航路 题目大意 以第一个岛为起点,最后一个岛为终点.问从第一个岛到最后一个岛所需要的的最短时间是多少.其中岛i到岛i所需花费的时间为0,岛i岛到j的时间和岛j到 ...

  2. 北京大学OpenJudge 4124:海贼王之伟大航路

    4124:海贼王之伟大航路 总时间限制: 1000ms 内存限制: 65536kB 描述 "我是要成为海贼王的男人!",路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的 ...

  3. POJ h0248.海贼王之伟大航路

    海贼王之伟大航路 "我是要成为海贼王的男人!",路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程. 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿 ...

  4. 18.06.27 POJ百练 4124海贼王之伟大航路

    描述 "我是要成为海贼王的男人!",路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程. 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着" ...

  5. OpenJudge 4124 海贼王之伟大航路 深搜剪枝

    Description "我是要成为海贼王的男人!",路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程. 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那 ...

  6. 源哥每日一题第十三弹 百练4124:海贼王之伟大航路 状压dp

    连接:http://bailian.openjudge.cn/practice/4124 题意:从1到n走过所有点恰好一次最短时间.乱搞的话会完美的超时(阶乘级别的复杂度,虽然范围很小,但是也足够超时 ...

  7. 百练4124:海贼王之伟大航路

    路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着"唯一的大秘宝"--ONE PIECE).而航程中间,则是各式各样的岛屿. 因为伟大航路上的气候十分异常,所以来往任意 ...

  8. POJ 4979 海贼王之伟大航路 【状压dp】【北大ACM/ICPC竞赛训练】

    该死的题让我想起来艾斯之死... 首先想到dp(i)代表从1到[i表示的这些岛屿]所花的最小时间,然后每次枚举最后一个岛屿以此缩小范围,但发现枚举了最后一个岛屿后没有办法转移,因为不知道倒数第二个岛屿 ...

  9. 百练4124:海贼王之伟大航路(状压DP)

    题目来源:http://bailian.openjudge.cn/practice/4124/ 4124:海贼王之伟大航路 总时间限制: 1000ms  内存限制: 65536kB 描述 " ...

最新文章

  1. 物体检测丨从R-CNN到Mask R-CNN
  2. LeaFlet学习之结合turf.js生成简单的等值线demo
  3. jpa 实体图查询_JPA实体图
  4. js调用python接口_JavaScript如何调用Python后端服务
  5. Typecho webstack开源导航主题
  6. 【C++】类的成员初始化表与构造函数内赋值操作
  7. 让你的微信私人账号也具备公众账号的 关键字回复功能
  8. 栈应用---元素出栈、入栈顺序的合法性判断
  9. SqlServer 2017 下载地址及密钥下载地址
  10. (转)《C++ Qt 编程视频教程》(C++ Qt Programming)[MP4]
  11. 用计算机画图截图图片,电脑怎么截图
  12. blast2go mysql_blast2go本地化-2017教程
  13. 微博如何取消关注不存在的_为什么“取消文化”将继续存在
  14. windows磁盘管理压缩卷只能压缩一部分的问题解决办法
  15. 我工作上常用的--测试用例文档模板
  16. 地理遥感专业属于计算机行业吗,遥感科学与技术专业怎么样?
  17. 测试emmc读写速度软件,真机闪存实测:闪存读取速度到底什么鬼差距有多大建议收藏...
  18. [RoCE]RDMA over Converged Ethernet模式以及配置
  19. shell基础+强化
  20. 云上未来,数智导航:阿里云研究院报告合集

热门文章

  1. sap badi s4 MIGO屏幕实施测试
  2. Ambari2.7.4 + HDP3.1.4 离线安装(2)
  3. 云计算架构中的Iaas、Paas、SaaS详解
  4. 5种AI编程语言优缺点比较,谁才是程序员心中的白月光
  5. ubuntu18.04 install 安装postgresql9.6 解决重音不敏感”排序规则,以及扩展pgcrypto函数
  6. 深度学习——Noisier2Noise
  7. JAVA MemCache 史无前例的详细讲解
  8. 企业邮箱Foxmail提示错误421 too many connections
  9. 【问题3】:Kaggle练习题《房价预测》----分别采用的岭回归,随机森林,bagging模型,AdaBoost,XgBoost等。
  10. 【数理统计】调和平均值