蒜头君得到一张藏宝图。藏宝图是一个 10×1010 \times 1010×10 的方格地图,图上一共有 101010 个宝藏。有些方格地形太凶险,不能进入。

整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。

藏宝图上从一个方格到相邻的上下左右的方格需要 111 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。

代码如下:

#include<iostream> 
#include<algorithm> 
#include<set> 
#include<cmath> 
#include<stack> 
#include<string> 
#include<queue>
#include<vector>
using namespace std;
int fz[4][2]={0,1,1,0,0,-1,-1,0};
int out=99999;
char map[20][20]={"1111111211",
      "1110112111",
      "1011211011",
      "1211101121",
      "1011210111",
      "1101111011",
      "1111101121",
      "1010112111",
      "1211110011",
      "1101102111"};
     
typedef struct node{
 int x;
 int y;
}node;
int pd(int x,int y,int v[20][20]){
 if(x<0||y<0||x>=10||y>=10||map[x][y]=='0'||v[x][y]==1) return 0;
 return 1;
}
int bfs(node n1,node n2,int v[20][20]){
 int len[20][20]={0};
 queue<node> que;
 que.push(n1);
 v[n1.x][n1.y]=1;
 while(que.size()){
  node n1=que.front();
  que.pop();
  for(int i=0;i<4;i++){
   int xx=n1.x+fz[i][0];
   int yy=n1.y+fz[i][1];
   if(pd(xx,yy,v)){
    v[xx][yy]=1;
    len[xx][yy]=len[n1.x][n1.y]+1;
    if(xx==n2.x&&yy==n2.y) return len[xx][yy];
    que.push({xx,yy});
   }
  }
 }
}
int main(){
 node no[20];
 no[0].x=0,no[0].y=7;
 no[1].x=1,no[1].y=6;
 no[2].x=2,no[2].y=4;
 no[3].x=3,no[3].y=1;
 no[4].x=3,no[4].y=8;
 no[5].x=4,no[5].y=4;
 no[6].x=6,no[6].y=8;
 no[7].x=7,no[7].y=6;
 no[8].x=8,no[8].y=1;
 no[9].x=9,no[9].y=6;
 int out=9999;
 int a[100]={0,1,2,3,4,5,6,7,8,9};
 do{
  if(no[a[0]].x>=3&&no[a[0]].y>=3) continue;
  int sum=0;
  node nn;
  nn.x=0,nn.y=0;
  int f[20][20]={0};
  sum+=bfs(nn,no[a[0]],f);
  for(int i=0;i<9;i++){
   int v[20][20]={0};
   sum+=bfs(no[a[i]],no[a[i+1]],v);
  }
  int f1[20][20]={0};
  sum+=bfs(no[a[9]],nn,f1);
  out=min(out,sum);
 }while(next_permutation(a,a+10));
 cout<<out;
 return 0;
}

2018 蓝桥杯省赛 B 组模拟赛(五)题 F题相关推荐

  1. 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门

    题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...

  2. 52-2018 蓝桥杯省赛 B 组模拟赛(一)java

    最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...

  3. 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会

    2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...

  4. 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)

    比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...

  5. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  6. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...

  7. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  8. 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析

    蓝桥杯历年真题题目及题解目录汇总   A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...

  9. 蓝桥杯c语言a组省赛试题及答案,2016-蓝桥杯-省赛-C语言大学A组全部真题.doc

    第七届蓝桥杯大赛个人赛省赛真题(软件类) C/C++ 大学A组 考生须知: 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题. 考试时间为4小时.时间截止后,提交答案无效. 在考试强 ...

  10. 2019年第十届蓝桥杯C/C++ A组国赛赛后总结(北京旅游总结)

    听说蓝桥杯挺水,几个同学一块儿报了省赛准备打着玩玩(Java C/C++ A B组都有).我报的是C/C++A组. 好,省赛一结束,一等奖前排...但是只有两个同C/C++A组的同学也是省一,不过都是 ...

最新文章

  1. 元宇宙和我有什么关系?
  2. 【Fibonacci-PEG,LDPC】基于Fibonacci-PEG算法的LDPC码校验矩阵的构造
  3. python excelwriter保存路径_python管理文件神器 os.walk
  4. Activity 启动模式
  5. 还在用上古的 ls 命令管理文件吗,是时候使用终端文件管理神器 lf 了!
  6. c语言 stm32结构体赋值,STM32学习笔记9——结构体赋值问题
  7. vue-cli3的命令行创建项目-(慕课网笔记)
  8. Opencv3与Opencv2的区别,及opencv2项目移植到opencv3注意事项
  9. 解决 此 Flash Player 与您的地区不相容 问题
  10. Carplay测试-Carplay认证预测试服务-Siri AudioTest-ITU-T P.1110 测试-ITU-T P.1100车载免提音测试
  11. svn忽略指定文件或目录
  12. Flex弹性布局详细介绍
  13. php api地址解析,百度地图API-根据地址解析坐标,根据坐标解析地址
  14. @csrf_exempt 类的视图跨域
  15. c语言最简单的程序流程图,高手帮忙画个流程图简单的俄罗斯方块C语言程 – 手机爱问...
  16. 华为交换机三种模式的理解
  17. 读取XML-致冷冽同学
  18. CDGP|保险行业如何做好数据治理?
  19. OpenCV图像拼接-Stitcher类-Stitching detailed使用与参数介绍
  20. IDEA安装lombok插件踩坑记录

热门文章

  1. pymol安装教程linux,PyMOL | Pymol绘图教程(一)
  2. c++ 2条中线焦点_三角形的中线为何交于一点
  3. ios block常见的错误(二)——循环引用
  4. 双屏不同缩放比例_科技产品大赏,曲面、折叠手机之后,双屏电脑会是下一个趋势吗?...
  5. 转:一个Sqrt函数引发的血案
  6. maven安装以及常用配置,idea如何配置maven
  7. 2.微型计算机系统的基本结构及计算机各个部件的功能
  8. 中的live_2016知乎Live精选汇编——简历类
  9. 如何使用命令强制DC的复制
  10. 【我的相册】2018.2.15-年夜饭